ACT Library
|
This class is used to create an instance in a scope. The name comes from the fact that this is used to keep track of the index of a value within a particular type (rather than a flat data structure, one per instance) and so is not defined as a value-per-instance, but rather a value-per-type. More...
#include <value.h>
Public Member Functions | |
bool | hasConnection () |
bool | hasAnyConnection () |
bool | hasConnection (int i) |
bool | hasSubconnections () |
bool | isPrimary () |
bool | isPrimary (int i) |
act_connection * | connection () |
const char * | getName () |
act_attr * | getAttr () |
act_attr * | getAttrIdx (int i) |
bool | haveAttrIdx () |
int | numAttrIdx () |
Public Attributes | |
InstType * | t |
struct act_attr * | a |
instance attributes for the value | |
struct act_attr ** | array_spec |
unsigned int | init:1 |
unsigned int | immutable:1 |
ActNamespace * | global |
union { | |
long idx | |
struct { | |
act_connection * c | |
const char * name | |
} obj | |
} | u |
the value associated with this instance | |
This class is used to create an instance in a scope. The name comes from the fact that this is used to keep track of the index of a value within a particular type (rather than a flat data structure, one per instance) and so is not defined as a value-per-instance, but rather a value-per-type.
When a value is "allocated", it means it contains information about its value.
A value can also have a list of instance attributes associated with it. These are also held in this data structure.
|
inline |
ONLY FOR NON-PARAM TYPES.
|
inline |
|
inline |
For attributes associated with array instances
i | is the index into the array |
|
inline |
ONLY FOR NON-PARAM TYPES.
|
inline |
ONLY FOR NON-PARAM TYPES. Checks if there is any connection associated with this object
|
inline |
ONLY FOR NON-PARAM TYPES. For non-parameter types, this checks if there is a connection pointer associated with this object.
|
inline |
ONLY FOR NON-PARAM TYPES. Checks if there is a connection pointer associated with a sub-connection at index i for this object
|
inline |
ONLY FOR NON-PARAM TYPES. Check if there are any sub-connections to this object
|
inline |
Check if there is an array-specific attribute specifier
|
inline |
ONLY FOR NON-PARAM TYPES. Check if this is a primary instance
|
inline |
ONLY FOR NON-PARAM TYPES. Check if the sub-connection at index i is the primary instance,
int ValueIdx::numAttrIdx | ( | ) |
struct act_attr* ValueIdx::a |
instance attributes for the value
struct act_attr** ValueIdx::array_spec |
array deref-specific attributes, if any
act_connection* ValueIdx::c |
For non-parameter types, the connection pointer. This is allocated in a lazy fashion.
ActNamespace* ValueIdx::global |
set for a namespace global; NULL otherwise. Note that global => immutable, but not the other way around
long ValueIdx::idx |
Base index for allocated storage for parameterized types
unsigned int ValueIdx::immutable |
for parameter types: immutable if it is in a namespace or a template parameter
unsigned int ValueIdx::init |
Has this been allocated? 0 = no allocation, 1 = allocated
const char* ValueIdx::name |
the base name, from the hash table lookup: DO NOT FREE
struct { ... } ValueIdx::obj |
information about the object for non-paramter types
InstType* ValueIdx::t |
the type corresponding to this particular instance
union { ... } ValueIdx::u |
the value associated with this instance