FLANG
Public Member Functions | Static Public Member Functions | List of all members
Fortran::runtime::Descriptor Class Reference

Public Member Functions

RT_API_ATTRS Descriptor (const Descriptor &)
 
RT_API_ATTRS Descriptoroperator= (const Descriptor &)
 
RT_API_ATTRS void Establish (TypeCode t, std::size_t elementBytes, void *p=nullptr, int rank=maxRank, const SubscriptValue *extent=nullptr, ISO::CFI_attribute_t attribute=CFI_attribute_other, bool addendum=false)
 
RT_API_ATTRS void Establish (TypeCategory, int kind, void *p=nullptr, int rank=maxRank, const SubscriptValue *extent=nullptr, ISO::CFI_attribute_t attribute=CFI_attribute_other, bool addendum=false)
 
RT_API_ATTRS void Establish (int characterKind, std::size_t characters, void *p=nullptr, int rank=maxRank, const SubscriptValue *extent=nullptr, ISO::CFI_attribute_t attribute=CFI_attribute_other, bool addendum=false)
 
RT_API_ATTRS void Establish (const typeInfo::DerivedType &dt, void *p=nullptr, int rank=maxRank, const SubscriptValue *extent=nullptr, ISO::CFI_attribute_t attribute=CFI_attribute_other)
 
RT_API_ATTRS ISO::CFI_cdesc_t & raw ()
 
RT_API_ATTRS const ISO::CFI_cdesc_t & raw () const
 
RT_API_ATTRS std::size_t ElementBytes () const
 
RT_API_ATTRS int rank () const
 
RT_API_ATTRS TypeCode type () const
 
RT_API_ATTRS Descriptorset_base_addr (void *p)
 
RT_API_ATTRS bool IsPointer () const
 
RT_API_ATTRS bool IsAllocatable () const
 
RT_API_ATTRS bool IsAllocated () const
 
RT_API_ATTRS DimensionGetDimension (int dim)
 
RT_API_ATTRS const DimensionGetDimension (int dim) const
 
RT_API_ATTRS std::size_t SubscriptByteOffset (int dim, SubscriptValue subscriptValue) const
 
RT_API_ATTRS std::size_t SubscriptsToByteOffset (const SubscriptValue subscript[]) const
 
template<typename A = char>
RT_API_ATTRS A * OffsetElement (std::size_t offset=0) const
 
template<typename A >
RT_API_ATTRS A * Element (const SubscriptValue subscript[]) const
 
template<typename A >
RT_API_ATTRS A * ElementComponent (const SubscriptValue subscript[], std::size_t componentOffset) const
 
template<typename A >
RT_API_ATTRS A * ZeroBasedIndexedElement (std::size_t n) const
 
RT_API_ATTRS int GetLowerBounds (SubscriptValue subscript[]) const
 
RT_API_ATTRS int GetShape (SubscriptValue subscript[]) const
 
RT_API_ATTRS bool IncrementSubscripts (SubscriptValue subscript[], const int *permutation=nullptr) const
 
RT_API_ATTRS bool DecrementSubscripts (SubscriptValue[], const int *permutation=nullptr) const
 
RT_API_ATTRS bool SubscriptsForZeroBasedElementNumber (SubscriptValue subscript[], std::size_t elementNumber, const int *permutation=nullptr) const
 
RT_API_ATTRS std::size_t ZeroBasedElementNumber (const SubscriptValue *, const int *permutation=nullptr) const
 
RT_API_ATTRS DescriptorAddendumAddendum ()
 
RT_API_ATTRS const DescriptorAddendumAddendum () const
 
RT_API_ATTRS std::size_t SizeInBytes () const
 
RT_API_ATTRS std::size_t Elements () const
 
RT_API_ATTRS int Allocate ()
 
RT_API_ATTRS void SetByteStrides ()
 
RT_API_ATTRS int Deallocate ()
 
RT_API_ATTRS int Destroy (bool finalize=false, bool destroyPointers=false, Terminator *=nullptr)
 
RT_API_ATTRS bool IsContiguous (int leadingDimensions=maxRank) const
 
RT_API_ATTRS bool EstablishPointerSection (const Descriptor &source, const SubscriptValue *lower=nullptr, const SubscriptValue *upper=nullptr, const SubscriptValue *stride=nullptr)
 
RT_API_ATTRS void ApplyMold (const Descriptor &, int rank)
 
RT_API_ATTRS void Check () const
 
void Dump (FILE *=stdout) const
 
RT_API_ATTRS bool HasAddendum () const
 
RT_API_ATTRS void SetHasAddendum ()
 
RT_API_ATTRS int GetAllocIdx () const
 
RT_API_ATTRS void SetAllocIdx (int pos)
 

Static Public Member Functions

static RT_API_ATTRS std::size_t BytesFor (TypeCategory category, int kind)
 
static RT_API_ATTRS OwningPtr< DescriptorCreate (TypeCode t, std::size_t elementBytes, void *p=nullptr, int rank=maxRank, const SubscriptValue *extent=nullptr, ISO::CFI_attribute_t attribute=CFI_attribute_other, bool addendum=false, const typeInfo::DerivedType *dt=nullptr)
 
static RT_API_ATTRS OwningPtr< DescriptorCreate (TypeCategory, int kind, void *p=nullptr, int rank=maxRank, const SubscriptValue *extent=nullptr, ISO::CFI_attribute_t attribute=CFI_attribute_other)
 
static RT_API_ATTRS OwningPtr< DescriptorCreate (int characterKind, SubscriptValue characters, void *p=nullptr, int rank=maxRank, const SubscriptValue *extent=nullptr, ISO::CFI_attribute_t attribute=CFI_attribute_other)
 
static RT_API_ATTRS OwningPtr< DescriptorCreate (const typeInfo::DerivedType &dt, void *p=nullptr, int rank=maxRank, const SubscriptValue *extent=nullptr, ISO::CFI_attribute_t attribute=CFI_attribute_other)
 
static constexpr RT_API_ATTRS std::size_t SizeInBytes (int rank, bool addendum=false, int lengthTypeParameters=0)
 

The documentation for this class was generated from the following files: