24 unsigned int n_elems ) ;
75 size_t getSize()
const override ;
100 std::shared_ptr<const DataType>
getSubType()
const;
112 bool initArrayDataType(
const DataTypeInator* dataTypeInator, std::string typeSpecName,
unsigned int n_elems );
114 std::shared_ptr<const DataType> subType;
117 unsigned int elementCount;
119 std::string typeSpecName;
Definition: ArrayDataType.hpp:13
bool accept(DataTypeVisitor *visitor) const override
Definition: ArrayDataType.cpp:121
ArrayDataType & operator=(ArrayDataType rhs)=delete
ArrayDataType(const ArrayDataType &original, unsigned int newSize)
bool validate(DataTypeInator *dataTypeInator) override
Verify that all of the types that are named by this DataType or subordinate DataTypes are resolvable ...
Definition: ArrayDataType.cpp:39
unsigned int getTotalElementCount() const
Definition: ArrayDataType.cpp:72
size_t getSize() const override
Definition: ArrayDataType.cpp:61
~ArrayDataType()
Definition: ArrayDataType.cpp:33
bool isValid() const override
Determine whether this type has already been successfully validated.
Definition: ArrayDataType.cpp:56
void deleteInstance(void *address) const override
Delete this instance.
Definition: ArrayDataType.cpp:89
void * createInstance(unsigned int num) const override
Create one or more instances of this type.
Definition: ArrayDataType.cpp:78
std::string makeDeclaration(std::string declarator) const override
Definition: ArrayDataType.cpp:104
unsigned int getElementCount() const
Definition: ArrayDataType.cpp:117
ArrayDataType(const ArrayDataType &original)=delete
std::shared_ptr< const DataType > getSubType() const
Definition: ArrayDataType.cpp:125
std::string getTypeSpecName() const override
Get the Type Spec Name object.
Definition: ArrayDataType.cpp:99
Register and manage datatypes at runtime.
Definition: DataTypeInator.hpp:16
Abstract base class for a DataTypeVisitor.
Definition: DataTypeVisitor.hpp:20
Abstract base class for DataTypes.
Definition: DataType.hpp:11