MDL SDK API nvidia_logo_transpbg.gif Up
mi::mdl::IGenerated_code_dag Class Referenceabstract

A container of DAG representations of a module containing materials, functions, constants, types and module annotations. More...

#include <mdl_generated_dag.h>

Inheritance diagram for mi::mdl::IGenerated_code_dag:

Classes

class  DAG_node_factory
 The node factory for DAG IR nodes. More...
 
class  IMaterial_instance
 An instantiated material. More...
 

Public Types

enum  Function_property {
  FP_ALLOW_INLINE = 0 ,
  FP_IS_EXPORTED = 1 ,
  FP_USES_TEXTURES = 2 ,
  FP_CAN_THROW_BOUNDS = 3 ,
  FP_CAN_THROW_DIVZERO = 4 ,
  FP_IS_UNIFORM = 5 ,
  FP_IS_NATIVE = 6
}
 Properties of DAG functions. More...
 
enum  Annotation_property { AP_IS_EXPORTED = 1 }
 Properties of DAG annotations. More...
 
enum  Error_code {
  EC_NONE ,
  EC_INVALID_INDEX ,
  EC_MATERIAL_HAS_ERROR ,
  EC_TOO_FEW_ARGUMENTS ,
  EC_TOO_MANY_ARGUMENTS ,
  EC_INSTANTIATION_ERROR ,
  EC_ARGUMENT_TYPE_MISMATCH ,
  EC_WRONG_TRANSMISSION_ON_THIN_WALLED
}
 The possible error codes. More...
 
- Public Types inherited from mi::base::Interface_declare< 0x9dbfd12e, ... >
typedef Interface_declare< id1, ... > Self
 Own type. More...
 
typedef Uuid_t< id1, ... > IID
 Declares the interface ID (IID) of this interface. More...
 

Public Member Functions

virtual char const * get_module_name () const =0
 Get the absolute module name of the module from which this code was generated. More...
 
virtual char const * get_module_file_name () const =0
 Get the module file name of the module from which this code was generated. More...
 
virtual size_t get_import_count () const =0
 Get the number of modules directly imported by the module from which this code was generated. More...
 
virtual char const * get_import (size_t index) const =0
 Get the name of module at index imported from the module from which this code was generated. More...
 
virtual size_t get_function_count () const =0
 Get the number of functions in the generated code. More...
 
virtual IType const * get_function_return_type (size_t function_index) const =0
 Get the return type of the function at function_index. More...
 
virtual IDefinition::Semantics get_function_semantics (size_t function_index) const =0
 Get the semantics of the function at function_index. More...
 
virtual char const * get_function_name (size_t function_index) const =0
 Get the name of the function at function_index. More...
 
virtual char const * get_simple_function_name (size_t function_index) const =0
 Get the simple name of the function at function_index. More...
 
virtual char const * get_original_function_name (size_t function_index) const =0
 Get the original name of the function at function_index if the function name is an alias, i.e. More...
 
virtual size_t get_function_parameter_count (size_t function_index) const =0
 Get the parameter count of the function at function_index. More...
 
virtual IType const * get_function_parameter_type (size_t function_index, size_t parameter_index) const =0
 Get the parameter type of the parameter at parameter_index of the function at function_index. More...
 
virtual char const * get_function_parameter_type_name (size_t function_index, size_t parameter_index) const =0
 Get the parameter type name of the parameter at parameter_index of the function at function_index. More...
 
virtual char const * get_function_parameter_name (size_t function_index, size_t parameter_index) const =0
 Get the parameter name of the parameter at parameter_index of the function at function_index. More...
 
virtual size_t get_function_parameter_index (size_t function_index, char const *parameter_name) const =0
 Get the index of the parameter parameter_name. More...
 
virtual DAG_node const * get_function_parameter_enable_if_condition (size_t function_index, size_t parameter_index) const =0
 Get the enable_if condition for the given function parameter if one was specified. More...
 
virtual size_t get_function_parameter_enable_if_condition_users (size_t function_index, size_t parameter_index) const =0
 Get the number of parameters whose enable_if condition depends on this parameter. More...
 
virtual size_t get_function_parameter_enable_if_condition_user (size_t function_index, size_t parameter_index, size_t user_index) const =0
 Get a parameter index whose enable_if condition depends on this parameter. More...
 
virtual DAG_hash const * get_function_hash (size_t function_index) const =0
 Get the function hash value for the given function index if available. More...
 
virtual size_t get_material_count () const =0
 Get the number of materials in the generated code. More...
 
virtual char const * get_material_name (size_t material_index) const =0
 Get the name of the material at material_index. More...
 
virtual char const * get_simple_material_name (size_t material_index) const =0
 Get the simple name of the material at material_index. More...
 
virtual char const * get_original_material_name (size_t material_index) const =0
 Get the original name of the material at material_index if the material name is an alias. More...
 
virtual size_t get_material_parameter_count (size_t material_index) const =0
 Get the parameter count of the material at material_index. More...
 
virtual IType const * get_material_parameter_type (size_t material_index, size_t parameter_index) const =0
 Get the parameter type of the parameter at parameter_index of the material at material_index. More...
 
virtual char const * get_material_parameter_type_name (size_t material_index, size_t parameter_index) const =0
 Get the parameter type name of the parameter at parameter_index of the material at material_index. More...
 
virtual char const * get_material_parameter_name (size_t material_index, size_t parameter_index) const =0
 Get the parameter name of the parameter at parameter_index of the material at material_index. More...
 
virtual size_t get_material_parameter_index (size_t material_index, char const *parameter_name) const =0
 Get the index of the parameter parameter_name. More...
 
virtual DAG_node const * get_material_parameter_enable_if_condition (size_t material_index, size_t parameter_index) const =0
 Get the enable_if condition for the given material parameter if one was specified. More...
 
virtual size_t get_material_parameter_enable_if_condition_users (size_t material_index, size_t parameter_index) const =0
 Get the number of parameters whose enable_if condition depends on this parameter. More...
 
virtual size_t get_material_parameter_enable_if_condition_user (size_t material_index, size_t parameter_index, size_t user_index) const =0
 Get a parameter index whose enable_if condition depends on this parameter. More...
 
virtual DAG_node_factoryget_node_factory ()=0
 Get the node factory. More...
 
virtual size_t get_function_annotation_count (size_t function_index) const =0
 Get the number of annotations of the function at function_index. More...
 
virtual DAG_node const * get_function_annotation (size_t function_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the function at function_index. More...
 
virtual size_t get_function_return_annotation_count (size_t function_index) const =0
 Get the number of annotations of the function return type at function_index. More...
 
virtual DAG_node const * get_function_return_annotation (size_t function_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the function return type at function_index. More...
 
virtual DAG_node const * get_function_parameter_default (size_t function_index, size_t parameter_index) const =0
 Get the default initializer of the parameter at parameter_index of the function at function_index. More...
 
virtual size_t get_function_parameter_annotation_count (size_t function_index, size_t parameter_index) const =0
 Get the number of annotations of the parameter at parameter_index of the function at function_index. More...
 
virtual DAG_node const * get_function_parameter_annotation (size_t function_index, size_t parameter_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the parameter at parameter_index of the function at function_index. More...
 
virtual size_t get_function_temporary_count (size_t function_index) const =0
 Get the number of temporaries used by the function at function_index. More...
 
virtual DAG_node const * get_function_temporary (size_t function_index, size_t temporary_index) const =0
 Get the temporary at temporary_index used by the function at function_index. More...
 
virtual char const * get_function_temporary_name (size_t function_index, size_t temporary_index) const =0
 Get the temporary name at temporary_index used by the function at function_index. More...
 
virtual DAG_node const * get_function_body (size_t function_index) const =0
 Get the body of the function at function_index. More...
 
virtual bool get_function_property (size_t function_index, Function_property fp) const =0
 Get the property flag of the function at function_index. More...
 
virtual size_t get_function_references_count (size_t function_index) const =0
 Get the number of entities referenced by a function. More...
 
virtual char const * get_function_reference (size_t function_index, size_t callee_index) const =0
 Get the signature of the i'th reference of a function. More...
 
virtual char const * get_cloned_function_name (size_t function_index) const =0
 Return the original function name of a cloned function or "" if the function is not a clone. More...
 
virtual size_t get_material_annotation_count (size_t material_index) const =0
 Get the number of annotations of the material at material_index. More...
 
virtual DAG_node const * get_material_annotation (size_t material_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the material at material_index. More...
 
virtual DAG_node const * get_material_parameter_default (size_t material_index, size_t parameter_index) const =0
 Get the default initializer of the parameter at parameter_index of the material at material_index. More...
 
virtual size_t get_material_return_annotation_count (size_t material_index) const =0
 Get the number of annotations of the material return type at material_index. More...
 
virtual DAG_node const * get_material_return_annotation (size_t material_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the material return type at material_index. More...
 
virtual size_t get_material_parameter_annotation_count (size_t material_index, size_t parameter_index) const =0
 Get the number of annotations of the parameter at parameter_index of the material at material_index. More...
 
virtual DAG_node const * get_material_parameter_annotation (size_t material_index, size_t parameter_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the parameter at parameter_index of the material at material_index. More...
 
virtual size_t get_material_temporary_count (size_t material_index) const =0
 Get the number of temporaries used by the material at material_index. More...
 
virtual DAG_node const * get_material_temporary (size_t material_index, size_t temporary_index) const =0
 Get the temporary at temporary_index used by the material at material_index. More...
 
virtual char const * get_material_temporary_name (size_t material_index, size_t temporary_index) const =0
 Get the temporary name at temporary_index used by the material at material_index. More...
 
virtual DAG_node const * get_material_value (size_t material_index) const =0
 Get the value of the material at material_index. More...
 
virtual bool get_material_exported (size_t material_index) const =0
 Get the export flags of the material at material_index. More...
 
virtual char const * get_cloned_material_name (size_t material_index) const =0
 Return the original material name of a cloned material or "" if the material is not a clone. More...
 
virtual IMaterial_instancecreate_material_instance (size_t index, Error_code *error_code=NULL) const =0
 Create a new material instance. More...
 
virtual size_t get_type_count () const =0
 Get the number of (exported and non-exported) user defined types of this compiled module. More...
 
virtual char const * get_type_name (size_t index) const =0
 Get the name of the user type at index. More...
 
virtual char const * get_original_type_name (size_t index) const =0
 Get the original name of the user defined type at index if the type is an alias. More...
 
virtual IType const * get_type (size_t index) const =0
 Get the user defined type at index. More...
 
virtual bool is_type_exported (size_t index) const =0
 Returns true if the user defined type at index is exported. More...
 
virtual size_t get_type_annotation_count (size_t index) const =0
 Get the number of annotations of the user defined type at index. More...
 
virtual DAG_node const * get_type_annotation (size_t type_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the user defined type at type_index. More...
 
virtual size_t get_type_sub_entity_count (size_t type_index) const =0
 Get the number of user defined type sub-entities (fields or enum constants). More...
 
virtual char const * get_type_sub_entity_name (size_t type_index, size_t entity_index) const =0
 Get the name of an user defined type sub-entity (field or enum constant). More...
 
virtual IType const * get_type_sub_entity_type (size_t type_index, size_t entity_index) const =0
 Get the type of an user defined type sub-entity (field or enum constant). More...
 
virtual size_t get_type_sub_entity_annotation_count (size_t type_index, size_t entity_index) const =0
 Get the number of annotations of an user defined type sub-entity (field or enum constant) at index. More...
 
virtual DAG_node const * get_type_sub_entity_annotation (size_t type_index, size_t entity_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the user defined type sub-entity at (type_index, entity_index). More...
 
virtual size_t get_constant_count () const =0
 Get the number of exported constants. More...
 
virtual char const * get_constant_name (size_t index) const =0
 Get the name of the constant at index. More...
 
virtual DAG_constant const * get_constant_value (size_t index) const =0
 Get the value of the constant at index. More...
 
virtual size_t get_constant_annotation_count (size_t index) const =0
 Get the number of annotations of the constant at index. More...
 
virtual DAG_node const * get_constant_annotation (size_t constant_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the constant at constant_index. More...
 
virtual Messages const & access_messages () const =0
 Access messages. More...
 
virtual Messages & access_messages ()=0
 Access messages (writable). More...
 
virtual size_t get_memory_size () const =0
 Returns the amount of used memory by this code DAG. More...
 
virtual size_t get_module_annotation_count () const =0
 Get the number of annotations of the module. More...
 
virtual DAG_node const * get_module_annotation (size_t annotation_index) const =0
 Get the annotation at annotation_index of the module. More...
 
virtual char const * get_internal_space () const =0
 Get the internal space. More...
 
virtual size_t get_annotation_count () const =0
 Get the number of annotations in the generated code. More...
 
virtual IDefinition::Semantics get_annotation_semantics (size_t annotation_index) const =0
 Get the semantics of the annotation at annotation_index. More...
 
virtual char const * get_annotation_name (size_t annotation_index) const =0
 Get the name of the annotation at annotation_index. More...
 
virtual char const * get_simple_annotation_name (size_t annotation_index) const =0
 Get the simple name of the annotation at annotation_index. More...
 
virtual char const * get_original_annotation_name (size_t annotation_index) const =0
 Get the original name of the annotation at annotation_index if the annotation name is an alias, i.e. More...
 
virtual size_t get_annotation_parameter_count (size_t annotation_index) const =0
 Get the parameter count of the annotation at annotation_index. More...
 
virtual IType const * get_annotation_parameter_type (size_t annotation_index, size_t parameter_index) const =0
 Get the parameter type of the parameter at parameter_index of the annotation at annotation_index. More...
 
virtual char const * get_annotation_parameter_type_name (size_t annotation_index, size_t parameter_index) const =0
 Get the parameter type name of the parameter at parameter_index of the annotation at annotation_index. More...
 
virtual char const * get_annotation_parameter_name (size_t annotation_index, size_t parameter_index) const =0
 Get the parameter name of the parameter at parameter_index of the annotation at annotation_index. More...
 
virtual size_t get_annotation_parameter_index (size_t annotation_index, char const *parameter_name) const =0
 Get the index of the parameter parameter_name. More...
 
virtual DAG_node const * get_annotation_parameter_default (size_t annotation_index, size_t parameter_index) const =0
 Get the default initializer of the parameter at parameter_index of the annotation at annotation_index. More...
 
virtual bool get_annotation_property (size_t annotation_index, Annotation_property ap) const =0
 Get the property flag of the annotation at annotation_index. More...
 
virtual size_t get_annotation_annotation_count (size_t annotation_index) const =0
 Get the number of annotations of the annotation at annotation_index. More...
 
virtual DAG_node const * get_annotation_annotation (size_t anno_decl_index, size_t annotation_index) const =0
 Get the annotation at annotation_index of the annotation (declaration) at anno_decl_index. More...
 
virtual int get_resource_tag (IValue_resource const *res) const =0
 Get a tag,for a resource constant that might be reachable from this DAG. More...
 
virtual void set_resource_tag (IValue_resource const *res, int tag)=0
 Set a tag, version pair for a resource constant that might be reachable from this DAG. More...
 
virtual size_t get_resource_tag_map_entries_count () const =0
 Get the number of resource tag map entries. More...
 
virtual Resource_tag_tuple const * get_resource_tag_map_entry (size_t index) const =0
 Get the i'th resource tag map entry or NULL if the index is out of bounds;. More...
 
virtual IResource_taggerget_resource_tagger () const =0
 Get the resource tagger for this code DAG. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from mi::base::Interface_declare< 0x9dbfd12e, ... >
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
 

Detailed Description

A container of DAG representations of a module containing materials, functions, constants, types and module annotations.

This object can be generated via ICode_generator_dag::compile() from a module loaded via IMDL::load_module().

Member Enumeration Documentation

 Annotation_property

Properties of DAG annotations.

Enumerator
AP_IS_EXPORTED 

True, if this annotation is exported.

 Error_code

The possible error codes.

Enumerator
EC_NONE 

No error has occurred.

EC_INVALID_INDEX 

The given index is invalid.

EC_MATERIAL_HAS_ERROR 

The material cannot be instantiated because it has errors.

EC_TOO_FEW_ARGUMENTS 

Not enough arguments were supplied for the material.

EC_TOO_MANY_ARGUMENTS 

Too many arguments were supplied for the material.

EC_INSTANTIATION_ERROR 

An error occurred during instantiation.

EC_ARGUMENT_TYPE_MISMATCH 

An instance argument is of wrong type.

EC_WRONG_TRANSMISSION_ON_THIN_WALLED 

Different transmission on thin_walled material.

 Function_property

Properties of DAG functions.

Enumerator
FP_ALLOW_INLINE 

True, if it is legal to inline this function.

FP_IS_EXPORTED 

True, if this function is exported.

FP_USES_TEXTURES 

True, if this function uses the texture functions (either directly or by calling another function that uses textures).

FP_CAN_THROW_BOUNDS 

True, if this function can throw a out-of-bounds exception.

FP_CAN_THROW_DIVZERO 

True, if this function can throw a div-by-zero exception.

FP_IS_UNIFORM 

True, if this function is uniform.

FP_IS_NATIVE 

True, if this function was declared native.

Member Function Documentation

 access_messages() [1/2]

virtual Messages const & mi::mdl::IGenerated_code_dag::access_messages ( ) const
pure virtual

Access messages.

 access_messages() [2/2]

virtual Messages & mi::mdl::IGenerated_code_dag::access_messages ( )
pure virtual

Access messages (writable).

 create_material_instance()

virtual IMaterial_instance * mi::mdl::IGenerated_code_dag::create_material_instance ( size_t  index,
Error_code error_code = NULL 
) const
pure virtual

Create a new material instance.

Parameters
[in]indexThe index of the material to instantiate.
[out]error_codeThe error code of the instance creation.
Returns
The material instance.

 get_annotation_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_annotation_annotation ( size_t  anno_decl_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the annotation (declaration) at anno_decl_index.

Parameters
anno_decl_indexThe index of the annotation (declaration).
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_annotation_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_annotation_annotation_count ( size_t  annotation_index) const
pure virtual

Get the number of annotations of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
Returns
The number of annotations.

 get_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_annotation_count ( ) const
pure virtual

Get the number of annotations in the generated code.

Returns
The number of annotations in this generated code.

 get_annotation_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_annotation_name ( size_t  annotation_index) const
pure virtual

Get the name of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
Returns
The name of the annotation.

 get_annotation_parameter_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_annotation_parameter_count ( size_t  annotation_index) const
pure virtual

Get the parameter count of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
Returns
The number of parameters of the annotation.

 get_annotation_parameter_default()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_annotation_parameter_default ( size_t  annotation_index,
size_t  parameter_index 
) const
pure virtual

Get the default initializer of the parameter at parameter_index of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
parameter_indexThe index of the parameter.
Returns
The default initializer or NULL if not available.

 get_annotation_parameter_index()

virtual size_t mi::mdl::IGenerated_code_dag::get_annotation_parameter_index ( size_t  annotation_index,
char const *  parameter_name 
) const
pure virtual

Get the index of the parameter parameter_name.

Parameters
annotation_indexThe index of the annotation.
parameter_nameThe name of the parameter.
Returns
The index of the parameter, or -1 if it does not exist.

 get_annotation_parameter_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_annotation_parameter_name ( size_t  annotation_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter name of the parameter at parameter_index of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
parameter_indexThe index of the parameter.
Returns
The name of the parameter.

 get_annotation_parameter_type()

virtual IType const * mi::mdl::IGenerated_code_dag::get_annotation_parameter_type ( size_t  annotation_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter type of the parameter at parameter_index of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
parameter_indexThe index of the parameter.
Returns
The type of the parameter.

 get_annotation_parameter_type_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_annotation_parameter_type_name ( size_t  annotation_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter type name of the parameter at parameter_index of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
parameter_indexThe index of the parameter.
Returns
The type of the parameter.

 get_annotation_property()

virtual bool mi::mdl::IGenerated_code_dag::get_annotation_property ( size_t  annotation_index,
Annotation_property  ap 
) const
pure virtual

Get the property flag of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
apThe requested annotation property.
Returns
True if this annotation has the property, false if not.

 get_annotation_semantics()

virtual IDefinition::Semantics mi::mdl::IGenerated_code_dag::get_annotation_semantics ( size_t  annotation_index) const
pure virtual

Get the semantics of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
Returns
The semantics of the annotation.

 get_cloned_function_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_cloned_function_name ( size_t  function_index) const
pure virtual

Return the original function name of a cloned function or "" if the function is not a clone.

Parameters
function_indexThe index of the function.
Returns
The absolute name of the original function or "".

 get_cloned_material_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_cloned_material_name ( size_t  material_index) const
pure virtual

Return the original material name of a cloned material or "" if the material is not a clone.

Parameters
material_indexThe index of the material.
Returns
The absolute name of the original material or "".

 get_constant_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_constant_annotation ( size_t  constant_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the constant at constant_index.

Parameters
constant_indexThe index of the constant.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_constant_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_constant_annotation_count ( size_t  index) const
pure virtual

Get the number of annotations of the constant at index.

Parameters
indexThe index of the constant.

 get_constant_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_constant_count ( ) const
pure virtual

Get the number of exported constants.

 get_constant_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_constant_name ( size_t  index) const
pure virtual

Get the name of the constant at index.

Parameters
indexThe index of the constant.
Returns
The name of the constant.

 get_constant_value()

virtual DAG_constant const * mi::mdl::IGenerated_code_dag::get_constant_value ( size_t  index) const
pure virtual

Get the value of the constant at index.

Parameters
indexThe index of the constant.
Returns
The value of the constant.

 get_function_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_function_annotation ( size_t  function_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the function at function_index.

Parameters
function_indexThe index of the function.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_function_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_annotation_count ( size_t  function_index) const
pure virtual

Get the number of annotations of the function at function_index.

Parameters
function_indexThe index of the function.
Returns
The number of annotations.

 get_function_body()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_function_body ( size_t  function_index) const
pure virtual

Get the body of the function at function_index.

Parameters
function_indexThe index of the function.
Returns
The body of the function.

 get_function_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_count ( ) const
pure virtual

Get the number of functions in the generated code.

Returns
The number of functions in this generated code.

 get_function_hash()

virtual DAG_hash const * mi::mdl::IGenerated_code_dag::get_function_hash ( size_t  function_index) const
pure virtual

Get the function hash value for the given function index if available.

Parameters
function_indexThe index of the function.
Returns
The function hash of the function or NULL if no hash value is available or the index is out of bounds.

 get_function_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_function_name ( size_t  function_index) const
pure virtual

Get the name of the function at function_index.

Parameters
function_indexThe index of the function.
Returns
The name of the function.

 get_function_parameter_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_function_parameter_annotation ( size_t  function_index,
size_t  parameter_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the parameter at parameter_index of the function at function_index.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_function_parameter_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_parameter_annotation_count ( size_t  function_index,
size_t  parameter_index 
) const
pure virtual

Get the number of annotations of the parameter at parameter_index of the function at function_index.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
Returns
The number of annotations.

 get_function_parameter_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_parameter_count ( size_t  function_index) const
pure virtual

Get the parameter count of the function at function_index.

Parameters
function_indexThe index of the function.
Returns
The number of parameters of the function.

 get_function_parameter_default()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_function_parameter_default ( size_t  function_index,
size_t  parameter_index 
) const
pure virtual

Get the default initializer of the parameter at parameter_index of the function at function_index.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
Returns
The default initializer or NULL if not available.

 get_function_parameter_enable_if_condition()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_function_parameter_enable_if_condition ( size_t  function_index,
size_t  parameter_index 
) const
pure virtual

Get the enable_if condition for the given function parameter if one was specified.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
Returns
The enable_if condition for this parameter or NULL.

 get_function_parameter_enable_if_condition_user()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_parameter_enable_if_condition_user ( size_t  function_index,
size_t  parameter_index,
size_t  user_index 
) const
pure virtual

Get a parameter index whose enable_if condition depends on this parameter.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
user_indexThe index of the user.
Returns
The index of the depended parameter.

 get_function_parameter_enable_if_condition_users()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_parameter_enable_if_condition_users ( size_t  function_index,
size_t  parameter_index 
) const
pure virtual

Get the number of parameters whose enable_if condition depends on this parameter.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
Returns
Number of depended parameter conditions.

 get_function_parameter_index()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_parameter_index ( size_t  function_index,
char const *  parameter_name 
) const
pure virtual

Get the index of the parameter parameter_name.

Parameters
function_indexThe index of the function.
parameter_nameThe name of the parameter.
Returns
The index of the parameter, or -1 if it does not exist.

 get_function_parameter_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_function_parameter_name ( size_t  function_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter name of the parameter at parameter_index of the function at function_index.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
Returns
The name of the parameter.

 get_function_parameter_type()

virtual IType const * mi::mdl::IGenerated_code_dag::get_function_parameter_type ( size_t  function_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter type of the parameter at parameter_index of the function at function_index.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
Returns
The type of the parameter.

 get_function_parameter_type_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_function_parameter_type_name ( size_t  function_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter type name of the parameter at parameter_index of the function at function_index.

Parameters
function_indexThe index of the function.
parameter_indexThe index of the parameter.
Returns
The type name of the parameter.

 get_function_property()

virtual bool mi::mdl::IGenerated_code_dag::get_function_property ( size_t  function_index,
Function_property  fp 
) const
pure virtual

Get the property flag of the function at function_index.

Parameters
function_indexThe index of the function.
fpThe requested property.
Returns
True if this function has the property, false if not.

 get_function_reference()

virtual char const * mi::mdl::IGenerated_code_dag::get_function_reference ( size_t  function_index,
size_t  callee_index 
) const
pure virtual

Get the signature of the i'th reference of a function.

Parameters
function_indexThe index of the function.
callee_indexThe index of the callee.
Returns
Number of function that might be called by this function

 get_function_references_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_references_count ( size_t  function_index) const
pure virtual

Get the number of entities referenced by a function.

Parameters
function_indexThe index of the function.
Returns
Number of function that might be called by this function

 get_function_return_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_function_return_annotation ( size_t  function_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the function return type at function_index.

Parameters
function_indexThe index of the function.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_function_return_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_return_annotation_count ( size_t  function_index) const
pure virtual

Get the number of annotations of the function return type at function_index.

Parameters
function_indexThe index of the function.
Returns
The number of annotations.

 get_function_return_type()

virtual IType const * mi::mdl::IGenerated_code_dag::get_function_return_type ( size_t  function_index) const
pure virtual

Get the return type of the function at function_index.

Parameters
function_indexThe index of the function.
Returns
The return type of the function.

 get_function_semantics()

virtual IDefinition::Semantics mi::mdl::IGenerated_code_dag::get_function_semantics ( size_t  function_index) const
pure virtual

Get the semantics of the function at function_index.

Parameters
function_indexThe index of the function.
Returns
The semantics of the function.

 get_function_temporary()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_function_temporary ( size_t  function_index,
size_t  temporary_index 
) const
pure virtual

Get the temporary at temporary_index used by the function at function_index.

Parameters
function_indexThe index of the function.
temporary_indexThe index of the temporary variable.
Returns
The value of the temporary variable.

 get_function_temporary_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_function_temporary_count ( size_t  function_index) const
pure virtual

Get the number of temporaries used by the function at function_index.

Parameters
function_indexThe index of the function.
Returns
The number of temporaries used by material.

 get_function_temporary_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_function_temporary_name ( size_t  function_index,
size_t  temporary_index 
) const
pure virtual

Get the temporary name at temporary_index used by the function at function_index.

Parameters
function_indexThe index of the function.
temporary_indexThe index of the temporary variable.
Returns
The name of the temporary variable.

 get_import()

virtual char const * mi::mdl::IGenerated_code_dag::get_import ( size_t  index) const
pure virtual

Get the name of module at index imported from the module from which this code was generated.

Parameters
indexthe index of the requested imported module

 get_import_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_import_count ( ) const
pure virtual

Get the number of modules directly imported by the module from which this code was generated.

 get_internal_space()

virtual char const * mi::mdl::IGenerated_code_dag::get_internal_space ( ) const
pure virtual

Get the internal space.

 get_material_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_material_annotation ( size_t  material_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the material at material_index.

Parameters
material_indexThe index of the material.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_material_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_annotation_count ( size_t  material_index) const
pure virtual

Get the number of annotations of the material at material_index.

Parameters
material_indexThe index of the material.
Returns
The number of annotations.

 get_material_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_count ( ) const
pure virtual

Get the number of materials in the generated code.

Returns
The number of materials in this generated code.

 get_material_exported()

virtual bool mi::mdl::IGenerated_code_dag::get_material_exported ( size_t  material_index) const
pure virtual

Get the export flags of the material at material_index.

Parameters
material_indexThe index of the material.
Returns
True if this is an exported material, false if it is local.

 get_material_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_material_name ( size_t  material_index) const
pure virtual

Get the name of the material at material_index.

Parameters
material_indexThe index of the material.
Returns
The name of the material.

 get_material_parameter_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_material_parameter_annotation ( size_t  material_index,
size_t  parameter_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the parameter at parameter_index of the material at material_index.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_material_parameter_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_parameter_annotation_count ( size_t  material_index,
size_t  parameter_index 
) const
pure virtual

Get the number of annotations of the parameter at parameter_index of the material at material_index.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
Returns
The number of annotations.

 get_material_parameter_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_parameter_count ( size_t  material_index) const
pure virtual

Get the parameter count of the material at material_index.

Parameters
material_indexThe index of the material.
Returns
The number of parameters of the material.

 get_material_parameter_default()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_material_parameter_default ( size_t  material_index,
size_t  parameter_index 
) const
pure virtual

Get the default initializer of the parameter at parameter_index of the material at material_index.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
Returns
The type of the parameter.

 get_material_parameter_enable_if_condition()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_material_parameter_enable_if_condition ( size_t  material_index,
size_t  parameter_index 
) const
pure virtual

Get the enable_if condition for the given material parameter if one was specified.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
Returns
The enable_if condition for this parameter or NULL.

 get_material_parameter_enable_if_condition_user()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_parameter_enable_if_condition_user ( size_t  material_index,
size_t  parameter_index,
size_t  user_index 
) const
pure virtual

Get a parameter index whose enable_if condition depends on this parameter.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
user_indexThe index of the user.
Returns
The index of the depended parameter.

 get_material_parameter_enable_if_condition_users()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_parameter_enable_if_condition_users ( size_t  material_index,
size_t  parameter_index 
) const
pure virtual

Get the number of parameters whose enable_if condition depends on this parameter.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
Returns
Number of depended parameter conditions.

 get_material_parameter_index()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_parameter_index ( size_t  material_index,
char const *  parameter_name 
) const
pure virtual

Get the index of the parameter parameter_name.

Parameters
material_indexThe index of the material.
parameter_nameThe name of the parameter.
Returns
The index of the parameter, or -1 if it does not exist.

 get_material_parameter_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_material_parameter_name ( size_t  material_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter name of the parameter at parameter_index of the material at material_index.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
Returns
The name of the parameter.

 get_material_parameter_type()

virtual IType const * mi::mdl::IGenerated_code_dag::get_material_parameter_type ( size_t  material_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter type of the parameter at parameter_index of the material at material_index.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
Returns
The type of the parameter.

 get_material_parameter_type_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_material_parameter_type_name ( size_t  material_index,
size_t  parameter_index 
) const
pure virtual

Get the parameter type name of the parameter at parameter_index of the material at material_index.

Parameters
material_indexThe index of the material.
parameter_indexThe index of the parameter.
Returns
The type name of the parameter.

 get_material_return_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_material_return_annotation ( size_t  material_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the material return type at material_index.

Parameters
material_indexThe index of the material.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_material_return_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_return_annotation_count ( size_t  material_index) const
pure virtual

Get the number of annotations of the material return type at material_index.

Parameters
material_indexThe index of the material.
Returns
The number of annotations.

 get_material_temporary()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_material_temporary ( size_t  material_index,
size_t  temporary_index 
) const
pure virtual

Get the temporary at temporary_index used by the material at material_index.

Parameters
material_indexThe index of the material.
temporary_indexThe index of the temporary variable.
Returns
The value of the temporary variable.

 get_material_temporary_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_material_temporary_count ( size_t  material_index) const
pure virtual

Get the number of temporaries used by the material at material_index.

Parameters
material_indexThe index of the material.
Returns
The number of temporaries used by material.

 get_material_temporary_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_material_temporary_name ( size_t  material_index,
size_t  temporary_index 
) const
pure virtual

Get the temporary name at temporary_index used by the material at material_index.

Parameters
material_indexThe index of the material.
temporary_indexThe index of the temporary variable.
Returns
The name of the temporary variable.

 get_material_value()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_material_value ( size_t  material_index) const
pure virtual

Get the value of the material at material_index.

Parameters
material_indexThe index of the material.
Returns
The value of the material.

 get_memory_size()

virtual size_t mi::mdl::IGenerated_code_dag::get_memory_size ( ) const
pure virtual

Returns the amount of used memory by this code DAG.

 get_module_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_module_annotation ( size_t  annotation_index) const
pure virtual

Get the annotation at annotation_index of the module.

Parameters
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_module_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_module_annotation_count ( ) const
pure virtual

Get the number of annotations of the module.

Returns
The number of annotations.

 get_module_file_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_module_file_name ( ) const
pure virtual

Get the module file name of the module from which this code was generated.

 get_module_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_module_name ( ) const
pure virtual

Get the absolute module name of the module from which this code was generated.

 get_node_factory()

virtual DAG_node_factory * mi::mdl::IGenerated_code_dag::get_node_factory ( )
pure virtual

Get the node factory.

 get_original_annotation_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_original_annotation_name ( size_t  annotation_index) const
pure virtual

Get the original name of the annotation at annotation_index if the annotation name is an alias, i.e.

re-exported from a module.

Parameters
annotation_indexThe index of the annotation.
Returns
The original name of the annotation or NULL.

 get_original_function_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_original_function_name ( size_t  function_index) const
pure virtual

Get the original name of the function at function_index if the function name is an alias, i.e.

re-exported from a module.

Parameters
function_indexThe index of the function.
Returns
The original name of the function or NULL.

 get_original_material_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_original_material_name ( size_t  material_index) const
pure virtual

Get the original name of the material at material_index if the material name is an alias.

Parameters
material_indexThe index of the material.
Returns
The name of the material or NULL.

 get_original_type_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_original_type_name ( size_t  index) const
pure virtual

Get the original name of the user defined type at index if the type is an alias.

Parameters
indexThe index of the type.
Returns
The original name of the type or NULL.

 get_resource_tag()

virtual int mi::mdl::IGenerated_code_dag::get_resource_tag ( IValue_resource const *  res) const
pure virtual

Get a tag,for a resource constant that might be reachable from this DAG.

Parameters
resa resource

 get_resource_tag_map_entries_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_resource_tag_map_entries_count ( ) const
pure virtual

Get the number of resource tag map entries.

 get_resource_tag_map_entry()

virtual Resource_tag_tuple const * mi::mdl::IGenerated_code_dag::get_resource_tag_map_entry ( size_t  index) const
pure virtual

Get the i'th resource tag map entry or NULL if the index is out of bounds;.

Parameters
indexthe index of the resource map entry.

 get_resource_tagger()

virtual IResource_tagger * mi::mdl::IGenerated_code_dag::get_resource_tagger ( ) const
pure virtual

Get the resource tagger for this code DAG.

 get_simple_annotation_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_simple_annotation_name ( size_t  annotation_index) const
pure virtual

Get the simple name of the annotation at annotation_index.

Parameters
annotation_indexThe index of the annotation.
Returns
The simple name of the annotation.

 get_simple_function_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_simple_function_name ( size_t  function_index) const
pure virtual

Get the simple name of the function at function_index.

Parameters
function_indexThe index of the function.
Returns
The simple name of the function.

 get_simple_material_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_simple_material_name ( size_t  material_index) const
pure virtual

Get the simple name of the material at material_index.

Parameters
material_indexThe index of the material.
Returns
The simple name of the material.

 get_type()

virtual IType const * mi::mdl::IGenerated_code_dag::get_type ( size_t  index) const
pure virtual

Get the user defined type at index.

Parameters
indexThe index of the type.
Returns
The type.

 get_type_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_type_annotation ( size_t  type_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the user defined type at type_index.

Parameters
type_indexThe index of the type.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_type_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_type_annotation_count ( size_t  index) const
pure virtual

Get the number of annotations of the user defined type at index.

Parameters
indexThe index of the type.
Returns
The number of annotations of the type.

 get_type_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_type_count ( ) const
pure virtual

Get the number of (exported and non-exported) user defined types of this compiled module.

 get_type_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_type_name ( size_t  index) const
pure virtual

Get the name of the user type at index.

Parameters
indexThe index of the type.
Returns
The name of the type.

 get_type_sub_entity_annotation()

virtual DAG_node const * mi::mdl::IGenerated_code_dag::get_type_sub_entity_annotation ( size_t  type_index,
size_t  entity_index,
size_t  annotation_index 
) const
pure virtual

Get the annotation at annotation_index of the user defined type sub-entity at (type_index, entity_index).

Parameters
type_indexThe index of the type.
entity_indexThe index of the sub entity.
annotation_indexThe index of the annotation.
Returns
The annotation.

 get_type_sub_entity_annotation_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_type_sub_entity_annotation_count ( size_t  type_index,
size_t  entity_index 
) const
pure virtual

Get the number of annotations of an user defined type sub-entity (field or enum constant) at index.

Parameters
type_indexThe index of the type.
entity_indexThe index of the sub entity.
Returns
The number of annotations of the type sub-entity.

 get_type_sub_entity_count()

virtual size_t mi::mdl::IGenerated_code_dag::get_type_sub_entity_count ( size_t  type_index) const
pure virtual

Get the number of user defined type sub-entities (fields or enum constants).

Parameters
type_indexThe index of the type.
Returns
The number of sub entities.

 get_type_sub_entity_name()

virtual char const * mi::mdl::IGenerated_code_dag::get_type_sub_entity_name ( size_t  type_index,
size_t  entity_index 
) const
pure virtual

Get the name of an user defined type sub-entity (field or enum constant).

Parameters
type_indexThe index of the type.
entity_indexThe index of the sub entity.
Returns
The name of a sub-entity.

 get_type_sub_entity_type()

virtual IType const * mi::mdl::IGenerated_code_dag::get_type_sub_entity_type ( size_t  type_index,
size_t  entity_index 
) const
pure virtual

Get the type of an user defined type sub-entity (field or enum constant).

Parameters
type_indexThe index of the type.
entity_indexThe index of the sub entity.
Returns
The type of sub-entity.

 is_type_exported()

virtual bool mi::mdl::IGenerated_code_dag::is_type_exported ( size_t  index) const
pure virtual

Returns true if the user defined type at index is exported.

Parameters
indexThe index of the type.
Returns
true for exported types.

 set_resource_tag()

virtual void mi::mdl::IGenerated_code_dag::set_resource_tag ( IValue_resource const *  res,
int  tag 
)
pure virtual

Set a tag, version pair for a resource constant that might be reachable from this DAG.

Parameters
resa resource
tagthe tag value