Vuo  2.0.0
Public Types | Public Member Functions | Static Public Member Functions | List of all members
VuoGenericType Class Reference

Description

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...
 
VuoCompilerTypegetCompiler (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...
 
VuoNodeSetgetNodeSet (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...
 

Member Enumeration Documentation

◆ Compatibility

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.

Constructor & Destructor Documentation

◆ VuoGenericType()

VuoGenericType::VuoGenericType ( string  typeName,
vector< string >  compatibleSpecializedTypes 
)

Creates a generic type.

Definition at line 19 of file VuoGenericType.cc.

Member Function Documentation

◆ createGenericTypeName()

string VuoGenericType::createGenericTypeName ( unsigned int  suffix)
static

Creates a generic type name by appending the given numerical suffix.

Definition at line 197 of file VuoGenericType.cc.

◆ findGenericTypeName()

size_t VuoGenericType::findGenericTypeName ( string  stringToSearch,
size_t  startPos,
string &  genericTypeName 
)
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).

Parameters
stringToSearchThe string in which to search.
startPosThe index in stringToSearch where the search should begin.
[out]genericTypeNameThe generic type name that begins at the returned index.
Returns
The index of the found generic type name in stringToSearch, or string::npos if none is found.

Definition at line 132 of file VuoGenericType.cc.

◆ getCompatibleSpecializedTypes()

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.

Parameters
[out]compatibilityIf the returned set is empty, this becomes anyType or anyListType. Otherwise, this becomes whitelistedTypes.
See also
VuoModuleMetadata

Definition at line 101 of file VuoGenericType.cc.

◆ isGenericTypeCompatible()

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.

◆ isGenericTypeName()

bool VuoGenericType::isGenericTypeName ( string  typeName)
static

Returns true if the name has the format of a generic type name.

Definition at line 115 of file VuoGenericType.cc.

◆ isSpecializedTypeCompatible()

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.

◆ replaceInnermostGenericTypeName()

string VuoGenericType::replaceInnermostGenericTypeName ( string  genericTypeName,
string  replacementTypeName 
)
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.

◆ sortGenericTypeNames()

void VuoGenericType::sortGenericTypeNames ( vector< string > &  genericTypeNames)
static

Puts the list of generic type names in ascending order of their numerical suffix.

Definition at line 207 of file VuoGenericType.cc.


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