Vuo  1.2.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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.

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.
 
bool isSpecializedTypeCompatible (string typeName)
 Returns true if this generic type is allowed to be specialized with the given type.
 
bool isGenericTypeCompatible (VuoGenericType *otherType)
 Returns true if this generic type has any compatible specialized types in common with the given generic type.
 
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.
 
- Public Member Functions inherited from VuoType
 VuoType (string typeName)
 Creates a type.
 
virtual ~VuoType (void)
 to make this class dynamic_cast-able
 
- Public Member Functions inherited from VuoBase< VuoCompilerType, void >
 VuoBase (string id)
 Creates a VuoType base class.
 
void setCompiler (VuoCompilerType *compiler)
 Sets the VuoType base class instance's VuoCompilerType detail class instance.
 
VuoCompilerTypegetCompiler (void) const
 Returns the VuoType base class instance's VuoCompilerType detail class instance.
 
bool hasCompiler (void) const
 Returns true if this base class instance has a compiler detail.
 
void setRenderer (void *renderer)
 Does nothing.
 
void * getRenderer (void) const
 Does nothing.
 
bool hasRenderer (void) const
 Returns false.
 
- Public Member Functions inherited from VuoModule
 VuoModule (string moduleKey)
 Creates a module.
 
string getModuleKey (void)
 Returns this module's unique name.
 
void setModuleKey (string moduleKey)
 Sets this module's unique name.
 
string getDefaultTitle (void)
 Returns the default title for instances of this module, as specified by the .vuonode/.bc implementation.
 
string getDefaultTitleWithoutSuffix (void)
 Returns the default title, with the optional parenthetical suffix removed.
 
void setDefaultTitle (string defaultTitle)
 Sets the default title for instances of this module.
 
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.
 
void setDescription (string description)
 Sets the description of this module provided as documentation.
 
string getVersion (void)
 Returns the module's version, in Semantic Versioning format.
 
void setVersion (string version)
 Sets the module's version, in Semantic Versioning format.
 
vector< string > getKeywords (void)
 Returns a list of the module's keywords.
 
void setKeywords (vector< string > keywords)
 Sets the module's keywords.
 
VuoNodeSetgetNodeSet (void)
 Returns the node set containing this module.
 
void setNodeSet (VuoNodeSet *nodeSet)
 Sets the node set containing this module.
 

Static Public Member Functions

static bool isGenericTypeName (string typeName)
 Returns true if the name has the format of a generic type name.
 
static size_t findGenericTypeName (string stringToSearch, size_t startPos, string &genericTypeName)
 Finds the next generic type name in stringToSearch, starting from startPos.
 
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.
 
static string createGenericTypeName (unsigned int suffix)
 Creates a generic type name by appending the given numerical suffix.
 
static void sortGenericTypeNames (vector< string > &genericTypeNames)
 Puts the list of generic type names in ascending order of their numerical suffix.
 
- Static Public Member Functions inherited from VuoType
static bool isListTypeName (string typeName)
 Returns true if the type name is for a list type.
 
static bool isDictionaryTypeName (string typeName)
 Returns true if the type name is for a dictionary type.
 
static string extractInnermostTypeName (string typeName)
 If the type name is a list (or list of lists, etc.), returns the innermost item type name.
 

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).
 
static const string dictionaryTypeNamePrefix = "VuoDictionary_"
 The common beginning of all VuoDictionary type names (before the key and value type names).
 

Member Enumeration Documentation

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.

Constructor & Destructor Documentation

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

Creates a generic type.

Member Function Documentation

string VuoGenericType::createGenericTypeName ( unsigned int  suffix)
static

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

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.
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
bool VuoGenericType::isGenericTypeCompatible ( VuoGenericType otherType)

Returns true if this generic type has any compatible specialized types in common with the given generic type.

bool VuoGenericType::isGenericTypeName ( string  typeName)
static

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

bool VuoGenericType::isSpecializedTypeCompatible ( string  typeName)

Returns true if this generic type is allowed to be specialized with the given type.

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.

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

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


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