A generic port type.
The generic type is a placeholder until the port is specialized (i.e., its type is replaced) with a non-generic type.
Definition at line 19 of file VuoGenericType.hh.
Public Types | |
enum | Compatibility { anyType, anyListType, whitelistedTypes } |
Descriptions of the specialized types with which a generic type is compatible. More... | |
Public Member Functions | |
VuoGenericType (string typeName, vector< string > compatibleSpecializedTypes) | |
Creates a generic type. More... | |
bool | isSpecializedTypeCompatible (string typeName) |
Returns true if this generic type is allowed to be specialized with the given type. More... | |
bool | isGenericTypeCompatible (VuoGenericType *otherType) |
Returns true if this generic type has any compatible specialized types in common with the given generic type. More... | |
vector< string > | getCompatibleSpecializedTypes (Compatibility &compatibility) |
Returns a set of the non-generic types compatible with the given type, or an empty set if all types or all list types are compatible. More... | |
Public Member Functions inherited from VuoType | |
VuoType (string typeName) | |
Creates a type. More... | |
virtual | ~VuoType (void) |
to make this class dynamic_cast-able More... | |
Public Member Functions inherited from VuoBase< VuoCompilerType, void > | |
VuoBase (string id) | |
Creates a base class. More... | |
void | setCompiler (VuoCompilerType *compiler) |
Sets the base class instance's compiler detail class instance. More... | |
VuoCompilerType * | getCompiler (void) const |
Returns the base class instance's compiler detail class instance. More... | |
bool | hasCompiler (void) const |
Returns true if this base class instance has a compiler detail. More... | |
void | setRenderer (void *renderer) |
Sets the base class instance's renderer detail class instance. More... | |
void * | getRenderer (void) const |
Returns the base class instance's renderer detail class instance. More... | |
bool | hasRenderer (void) const |
Returns true if this base class instance has a renderer detail. More... | |
Public Member Functions inherited from VuoModule | |
VuoModule (string moduleKey) | |
Creates a module. More... | |
string | getModuleKey (void) |
Returns this module's unique name. More... | |
void | setModuleKey (string moduleKey) |
Sets this module's unique name. More... | |
string | getDefaultTitle (void) |
Returns the default title for instances of this module, as specified by the .vuonode/.bc implementation. More... | |
string | getDefaultTitleWithoutSuffix (void) |
Returns the default title, with the optional parenthetical suffix removed. More... | |
void | setDefaultTitle (string defaultTitle) |
Sets the default title for instances of this module. More... | |
string | getDescription (void) |
Returns the description given in the module's metadata, or if none is given, the description found in a separate file in the module's node set. More... | |
void | setDescription (string description) |
Sets the description of this module provided as documentation. More... | |
string | getVersion (void) |
Returns the module's version, in Semantic Versioning format. More... | |
void | setVersion (string version) |
Sets the module's version, in Semantic Versioning format. More... | |
vector< string > | getKeywords (void) |
Returns a list of the module's keywords. More... | |
void | setKeywords (vector< string > keywords) |
Sets the module's keywords. More... | |
VuoNodeSet * | getNodeSet (void) |
Returns the node set containing this module. More... | |
void | setNodeSet (VuoNodeSet *nodeSet) |
Sets the node set containing this module. More... | |
Static Public Member Functions | |
static bool | isGenericTypeName (string typeName) |
Returns true if the name has the format of a generic type name. More... | |
static size_t | findGenericTypeName (string stringToSearch, size_t startPos, string &genericTypeName) |
Finds the next generic type name in stringToSearch, starting from startPos. More... | |
static string | replaceInnermostGenericTypeName (string genericTypeName, string replacementTypeName) |
Returns a type name created by replacing the innermost type name in genericTypeName (either the innermost item type if genericTypeName is a list type, or else genericTypeName itself) with replacementTypeName. More... | |
static string | createGenericTypeName (unsigned int suffix) |
Creates a generic type name by appending the given numerical suffix. More... | |
static void | sortGenericTypeNames (vector< string > &genericTypeNames) |
Puts the list of generic type names in ascending order of their numerical suffix. More... | |
Static Public Member Functions inherited from VuoType | |
static bool | isListTypeName (string typeName) |
Returns true if the type name is for a list type. More... | |
static bool | isDictionaryTypeName (string typeName) |
Returns true if the type name is for a dictionary type. More... | |
static string | extractInnermostTypeName (string typeName) |
If the type name is a list (or list of lists, etc.), returns the innermost item type name. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from VuoType | |
static const string | listTypeNamePrefix = "VuoList_" |
The common beginning of all VuoList type names (before the item type name). More... | |
static const string | dictionaryTypeNamePrefix = "VuoDictionary_" |
The common beginning of all VuoDictionary type names (before the key and value type names). More... | |
Descriptions of the specialized types with which a generic type is compatible.
Enumerator | |
---|---|
anyType | Compatible with any specialized type. |
anyListType | Compatible with any specialized VuoList type. |
whitelistedTypes | Compatible only with certain types. |
Definition at line 25 of file VuoGenericType.hh.
VuoGenericType::VuoGenericType | ( | string | typeName, |
vector< string > | compatibleSpecializedTypes | ||
) |
Creates a generic type.
Definition at line 19 of file VuoGenericType.cc.
|
static |
Creates a generic type name by appending the given numerical suffix.
Definition at line 197 of file VuoGenericType.cc.
|
static |
Finds the next generic type name in stringToSearch, starting from startPos.
The generic type name may be a singleton type (e.g. VuoGeneric1
) or a collection type (e.g. VuoList_VuoGeneric1
).
stringToSearch | The string in which to search. | |
startPos | The index in stringToSearch where the search should begin. | |
[out] | genericTypeName | The generic type name that begins at the returned index. |
string::npos
if none is found. Definition at line 132 of file VuoGenericType.cc.
vector< string > VuoGenericType::getCompatibleSpecializedTypes | ( | Compatibility & | compatibility | ) |
Returns a set of the non-generic types compatible with the given type, or an empty set if all types or all list types are compatible.
[out] | compatibility | If the returned set is empty, this becomes anyType or anyListType. Otherwise, this becomes whitelistedTypes. |
Definition at line 101 of file VuoGenericType.cc.
bool VuoGenericType::isGenericTypeCompatible | ( | VuoGenericType * | otherType | ) |
Returns true if this generic type has any compatible specialized types in common with the given generic type.
Definition at line 70 of file VuoGenericType.cc.
|
static |
Returns true if the name has the format of a generic type name.
Definition at line 115 of file VuoGenericType.cc.
bool VuoGenericType::isSpecializedTypeCompatible | ( | string | typeName | ) |
Returns true if this generic type is allowed to be specialized with the given type.
Definition at line 55 of file VuoGenericType.cc.
|
static |
Returns a type name created by replacing the innermost type name in genericTypeName (either the innermost item type if genericTypeName is a list type, or else genericTypeName itself) with replacementTypeName.
Definition at line 182 of file VuoGenericType.cc.
|
static |
Puts the list of generic type names in ascending order of their numerical suffix.
Definition at line 207 of file VuoGenericType.cc.