ICG 2
Electric Boogaloo
Public Member Functions | List of all members
ArrayDataType Class Reference

#include <ArrayDataType.hpp>

Inheritance diagram for ArrayDataType:
DataType

Public Member Functions

 ArrayDataType (std::string typeSpecifierName, unsigned int n_elems)
 Construct an ArrayDataType. More...
 
 ArrayDataType (const ArrayDataType &original, unsigned int newSize)
 
 ArrayDataType ()=delete
 
 ArrayDataType (const ArrayDataType &original)=delete
 
 ~ArrayDataType ()
 
ArrayDataTypeoperator= (ArrayDataType rhs)=delete
 
bool validate (DataTypeInator *dataTypeInator) override
 Verify that all of the types that are named by this DataType or subordinate DataTypes are resolvable to actual DataTypes in the TypeDictionary. More...
 
bool isValid () const override
 Determine whether this type has already been successfully validated. More...
 
size_t getSize () const override
 
void * createInstance (unsigned int num) const override
 Create one or more instances of this type. More...
 
void deleteInstance (void *address) const override
 Delete this instance. More...
 
std::string getTypeSpecName () const override
 Get the Type Spec Name object. More...
 
std::string makeDeclaration (std::string declarator) const override
 
bool accept (DataTypeVisitor *visitor) const override
 
std::shared_ptr< const DataTypegetSubType () const
 
unsigned int getTotalElementCount () const
 
unsigned int getElementCount () const
 
- Public Member Functions inherited from DataType
virtual ~DataType ()
 
virtual std::string toString () const
 

Constructor & Destructor Documentation

◆ ArrayDataType() [1/4]

ArrayDataType::ArrayDataType ( std::string  typeSpecifierName,
unsigned int  n_elems 
)

Construct an ArrayDataType.

Parameters
typeSpecifierNamestring representation of fully qualified type
n_elemsNumber of

◆ ArrayDataType() [2/4]

ArrayDataType::ArrayDataType ( const ArrayDataType original,
unsigned int  newSize 
)

Create an ArrayDataType with a different elementCount, but otherwise identical to the original.

◆ ArrayDataType() [3/4]

ArrayDataType::ArrayDataType ( )
delete

◆ ArrayDataType() [4/4]

ArrayDataType::ArrayDataType ( const ArrayDataType original)
delete

Copy Constructor for ArrayDataType.

◆ ~ArrayDataType()

ArrayDataType::~ArrayDataType ( )

Destructor for ArrayDataType.

Member Function Documentation

◆ accept()

bool ArrayDataType::accept ( DataTypeVisitor visitor) const
overridevirtual

Implements DataType.

◆ createInstance()

void * ArrayDataType::createInstance ( unsigned int  n) const
overridevirtual

Create one or more instances of this type.

Parameters
nnumber to create
Returns
void* address of the beginnning of the allocation

Implements DataType.

◆ deleteInstance()

void ArrayDataType::deleteInstance ( void *  address) const
overridevirtual

Delete this instance.

Parameters
addressof instance to delete
Note
Is this compatible with the createInstance?

Implements DataType.

◆ getElementCount()

unsigned int ArrayDataType::getElementCount ( ) const
Returns
Returns number of elements in this level of the array

◆ getSize()

size_t ArrayDataType::getSize ( ) const
overridevirtual
Returns
The size (in bytes) of an instance of the ArrayDataType.

Implements DataType.

◆ getSubType()

std::shared_ptr< const DataType > ArrayDataType::getSubType ( ) const

◆ getTotalElementCount()

unsigned int ArrayDataType::getTotalElementCount ( ) const
Returns
The number of arrayed Type-specifier elements of the DataType.

◆ getTypeSpecName()

std::string ArrayDataType::getTypeSpecName ( ) const
overridevirtual

Get the Type Spec Name object.

Returns
std::string name of the type

Implements DataType.

◆ isValid()

bool ArrayDataType::isValid ( ) const
overridevirtual

Determine whether this type has already been successfully validated.

Returns
true if validated, false otherwise

Implements DataType.

◆ makeDeclaration()

std::string ArrayDataType::makeDeclaration ( std::string  declarator) const
overridevirtual

Generate a declaration of this DataType.

Parameters
declaratorA declarator, which can be a 1) a variable name or an array declarator (both are direct-declarators) or 2) a pointer declarator ( not a direct-declarator ).

Reimplemented from DataType.

◆ operator=()

ArrayDataType& ArrayDataType::operator= ( ArrayDataType  rhs)
delete

Assignment operator for ArrayDataType.

Parameters
rhsright-hand-side.

◆ validate()

bool ArrayDataType::validate ( DataTypeInator dataTypeInator)
overridevirtual

Verify that all of the types that are named by this DataType or subordinate DataTypes are resolvable to actual DataTypes in the TypeDictionary.

Parameters
dataTypeInator- type resolver machine
Returns
true if successful, false otherwise

Implements DataType.


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