The function registry which is used for function code generation. Each time a function is visited within the AST, its identifier is used as a key into this registry for the corresponding function retrieval and execution. Functions can be inserted into the registry using insert() with a given identifier and pointer.  
 More...
#include <openvdb_ax/codegen/FunctionRegistry.h>
 | 
| struct   | RegisteredFunction | 
|   | An object to represent a registered function, storing its constructor, a pointer to the function definition and whether it should only be available internally (i.e. to a developer, not a user)  More...
  | 
|   | 
 | 
| void  | insert (const std::string &identifier, const ConstructorT creator, const bool internal=false) | 
|   | Insert and register a function object to a function identifier.  More...
  | 
|   | 
| void  | insertAndCreate (const std::string &identifier, const ConstructorT creator, const FunctionOptions &op, const bool internal=false) | 
|   | Insert and register a function object to a function identifier.  More...
  | 
|   | 
| const FunctionGroup *  | getOrInsert (const std::string &identifier, const FunctionOptions &op, const bool allowInternalAccess) | 
|   | Return the corresponding function from a provided function identifier.  More...
  | 
|   | 
| const FunctionGroup *  | get (const std::string &identifier, const bool allowInternalAccess) const  | 
|   | Return the corresponding function from a provided function identifier.  More...
  | 
|   | 
| void  | createAll (const FunctionOptions &op, const bool verify=false) | 
|   | Force the (re)creations of all function objects for all registered functions.  More...
  | 
|   | 
| const RegistryMap &  | map () const  | 
|   | Return a const reference to the current registry map.  More...
  | 
|   | 
| bool  | empty () const  | 
|   | Return whether or not the registry is empty.  More...
  | 
|   | 
| void  | clear () | 
|   | Clear the underlying function registry.  More...
  | 
|   | 
The function registry which is used for function code generation. Each time a function is visited within the AST, its identifier is used as a key into this registry for the corresponding function retrieval and execution. Functions can be inserted into the registry using insert() with a given identifier and pointer. 
 
Clear the underlying function registry. 
 
 
Force the (re)creations of all function objects for all registered functions. 
- Parameters
 - 
  
    | op | The current function options  | 
    | verify | Checks functions are created and have valid identifiers/symbols  | 
  
   
 
 
Return whether or not the registry is empty. 
 
 
      
        
          | const FunctionGroup* get  | 
          ( | 
          const std::string &  | 
          identifier,  | 
        
        
           | 
           | 
          const bool  | 
          allowInternalAccess  | 
        
        
           | 
          ) | 
           |  const | 
        
      
 
Return the corresponding function from a provided function identifier. 
- Note
 - Returns a nullptr if no such function identifier has been registered or if the function is marked as internal
 
- Parameters
 - 
  
    | identifier | The function identifier  | 
    | allowInternalAccess | Whether to look in the 'internal' functions  | 
  
   
 
 
Return the corresponding function from a provided function identifier. 
- Note
 - Returns a nullptr if no such function identifier has been registered or if the function is marked as internal
 
- Parameters
 - 
  
    | identifier | The function identifier  | 
    | op | FunctionOptions to pass the function constructor  | 
    | allowInternalAccess | Whether to look in the 'internal' functions  | 
  
   
 
 
      
        
          | void insert  | 
          ( | 
          const std::string &  | 
          identifier,  | 
        
        
           | 
           | 
          const ConstructorT  | 
          creator,  | 
        
        
           | 
           | 
          const bool  | 
          internal = false  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Insert and register a function object to a function identifier. 
- Note
 - Throws if the identifier is already registered
 
- Parameters
 - 
  
    | identifier | The function identifier to register  | 
    | creator | The function to link to the provided identifier  | 
    | internal | Whether to mark the function as only internally accessible  | 
  
   
 
 
      
        
          | void insertAndCreate  | 
          ( | 
          const std::string &  | 
          identifier,  | 
        
        
           | 
           | 
          const ConstructorT  | 
          creator,  | 
        
        
           | 
           | 
          const FunctionOptions &  | 
          op,  | 
        
        
           | 
           | 
          const bool  | 
          internal = false  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Insert and register a function object to a function identifier. 
- Note
 - Throws if the identifier is already registered
 
- Parameters
 - 
  
    | identifier | The function identifier to register  | 
    | creator | The function to link to the provided identifier  | 
    | op | FunctionOptions to pass the function constructor  | 
    | internal | Whether to mark the function as only internally accessible  | 
  
   
 
 
Return a const reference to the current registry map.