mi::nservices::ICommand_context Class Reference
[Commands]
Description
The context is which a command is executed. This includes
-
Command name and arguments.
-
Neuray environment
-
Access to scenes
-
Events
-
Data Factory
-
Attachments
Public Member Functions
- virtual Sint32 change_scope( const char* scope_name) =0
- Changes the scope that the command is executing to the given scope name. More...
- virtual Sint32 change_scope( neuraylib::IScope* scope) =0
- Changes the scope that the command is executing to the given scope. More...
- virtual ICommand_response* create_command_response() const =0
- Creates a command response. More...
- virtual Sint32 create_new_transaction( bool commit = true) =0
- Creates a new transaction at the same scope as the current one. More...
- virtual const ICommand_response* execute_command( ICommand_request* command_request) =0
- Executes a neuray service command and returns its response. More...
- virtual const IData* get_argument( const char* name) const =0
- Gets the value for argument 'name'. More...
- virtual Sint32 get_argument( Uint32 index, const char** name, const IData** value) const =0
- Gets the argument name and value of index. More...
- template< class T>const T* get_argument( const char* name) const
- Gets the value for argument 'name'. More...
- virtual IMap* get_attachments() const =0
- Retrieves the global attachment object. More...
- virtual IMap* get_command_attachments() const =0
- Retrieves the attachment object for the current command. More...
- virtual const char* get_command_name() const =0
- The name of the command being executed. More...
- virtual IConverter* get_converter() const =0
- Returns a type converter. More...
- virtual IEvent_context* get_event_context() const =0
- Gets an event context. More...
- virtual IFactory* get_factory() const =0
- Returns a factory, may be used to create neuray services data or other required classes. More...
- virtual Uint32 get_num_arguments() const =0
- The number of arguments to the command. More...
- virtual neuraylib::IPlugin_api* get_plugin_api() const =0
- Get the neuray IPlugin_api. More...
- virtual bool get_tainted() =0
- Gets the command context tainted state which controls command blacklisting. More...
- virtual neuraylib::ITransaction* get_transaction() =0
- Get the current transaction associated with this service request. More...
- virtual neuraylib::ITransaction* get_user_state() =0
- Gets a transaction into the user state. More...
- virtual Sint32 set_tainted( bool tainted) =0
- Sets the command context tainted state which controls command blacklisting. More...
Member Functions
- virtual Sint32 mi::nservices::ICommand_context::change_scope( const char* scope_name) [pure virtual]
-
Changes the scope that the command is executing to the given scope name. The current transaction is committed before the new transaction is created and any transaction previously obtained by get_transaction becomes invalid. Any future commands executed in this request will execute in the new scope. Users should ensure that an open edits on the current transaction are closed before calling this method. The new scope transaction can be accessed by calling ICommand_context::get_transaction. Events: Use of this method will trigger a CHANGE_SCOPE event.
Parameters
- scope_name
- the name of the scope
Returns
- NRS_ERROR_NONE success.
- NRS_ERROR_INVALID_PARAMETERS scope_name is NULL.
- NRS_ERROR_NOT_FOUND scope scope_name not found.
- NRS_ERROR_FAILED internal error.
- virtual Sint32 mi::nservices::ICommand_context::change_scope( neuraylib::IScope* scope) [pure virtual]
-
Changes the scope that the command is executing to the given scope. The current transaction is committed before the new transaction is created and any transaction previously obtained by get_transaction becomes invalid. Any future commands executed will execute in the new scope. Users should ensure that an open edits on the current transaction are closed before calling this method. The new transaction can be accessed by calling ICommand_context::get_transaction. Events: Use of this method will trigger a CHANGE_SCOPE event.
Parameters
- scope
- the scope to change to
Returns
- NRS_ERROR_NONE success.
- NRS_ERROR_INVALID_PARAMETERS scope is NULL
- NRS_ERROR_FAILED internal error.
- virtual ICommand_response* mi::nservices::ICommand_context::create_command_response() const [pure virtual]
-
Creates a command response.
Returns
A command response.
- virtual Sint32 mi::nservices::ICommand_context::create_new_transaction( bool commit = true) [pure virtual]
-
Creates a new transaction at the same scope as the current one. The new transaction is used by any subsequent commands executed in this request. Users should ensure that any open handles on the current transaction are closed before calling this method. The new transaction can be accessed by calling ICommand_context::get_transaction.
Parameters
- commit
- if true the current transaction is committed, if false it is aborted.
Returns
- NRS_ERROR_NONE success.
- NRS_ERROR_FAILED internal error.
- virtual const ICommand_response* mi::nservices::ICommand_context::execute_command( ICommand_request* command_request) [pure virtual]
-
Executes a neuray service command and returns its response. The command will be executed within the same environment as this command. The new command will be searched for within the same pool of command sets that this command was found in.
Parameters
- command_request
- the command request to execute, create with IFactory.
Returns
the response to the request. Note that this response can not be returned directly from the calling command. If the caller want to return the response it must copy it into it's own response using ICommand_response::copy_from.
- virtual const IData* mi::nservices::ICommand_context::get_argument( const char* name) const [pure virtual]
-
Gets the value for argument 'name'.
Parameters
- name
- The name of the argument.
Returns
the value or NULL if argument doesn't exist
- virtual Sint32 mi::nservices::ICommand_context::get_argument( Uint32 index, const char** name, const IData** value) const [pure virtual]
-
Gets the argument name and value of index.
Parameters
- index
- the index of the argument, start at 0 and increment until returns NRS_ERROR_NOT_FOUND
- name
- receives the name of the argument
- value
- receives the value of the argument
Returns
- NRS_ERROR_NONE success, name and value contains the argument name and it's value.
- NRS_ERROR_NOT_FOUND index is greater than the number of supplied arguments.
- NRS_ERROR_FAILED internal error.
-
template< class T>
const T* mi::nservices::ICommand_context::get_argument( const char* name) const [inline] -
Gets the value for argument 'name'. This templated member function is a wrapper of the non-template variant for the user's convenience. It eliminates the need to call mi::base::IInterface::get_interface(const Uuid&) on the returned pointer, since the return type already is a pointer to the type T specified as template parameter.
Parameters
- name
- the argument name
Returns
the value or NULL if argument doesn't exist
- virtual IMap* mi::nservices::ICommand_context::get_attachments() const [pure virtual]
-
Retrieves the global attachment object.
Returns
An object with which to manipulate the global attachments
- virtual IMap* mi::nservices::ICommand_context::get_command_attachments() const [pure virtual]
-
Retrieves the attachment object for the current command.
Returns
an object with which to manipulate attachments
- virtual const char* mi::nservices::ICommand_context::get_command_name() const [pure virtual]
-
The name of the command being executed. Can be used for sanity checking.
Returns
the command name
- virtual IConverter* mi::nservices::ICommand_context::get_converter() const [pure virtual]
-
Returns a type converter. If an incoming parameter is not the expected data type then the converter can be used to try and convert it to the expected type. It can also be used to convert array and object elements to their expected types.
Returns
the type converter
- virtual IEvent_context* mi::nservices::ICommand_context::get_event_context() const [pure virtual]
-
Gets an event context. The command can use this to trigger any necessary. events.
Returns
an event context
- virtual IFactory* mi::nservices::ICommand_context::get_factory() const [pure virtual]
-
Returns a factory, may be used to create neuray services data or other required classes.
Returns
a factory
- virtual Uint32 mi::nservices::ICommand_context::get_num_arguments() const [pure virtual]
-
The number of arguments to the command.
Returns
number of arguments
- virtual neuraylib::IPlugin_api* mi::nservices::ICommand_context::get_plugin_api() const [pure virtual]
-
Get the neuray IPlugin_api. Provides direct access to the neuray library.
Returns
the plugin api
- virtual bool mi::nservices::ICommand_context::get_tainted() [pure virtual]
-
Gets the command context tainted state which controls command blacklisting.
Returns
the context tainted state
- virtual neuraylib::ITransaction* mi::nservices::ICommand_context::get_transaction() [pure virtual]
-
Get the current transaction associated with this service request. This transaction is the primary entry point into the neuray database. Unless the command requires access to a specific scope it should conduct all work with this transaction.
Returns
the transaction
- virtual neuraylib::ITransaction* mi::nservices::ICommand_context::get_user_state() [pure virtual]
-
Gets a transaction into the user state.
Returns
the state transaction or NULL if no state exists
- virtual Sint32 mi::nservices::ICommand_context::set_tainted( bool tainted) [pure virtual]
-
Sets the command context tainted state which controls command blacklisting.
Parameters
- tainted
- the context tainted state
Returns
NRS_ERROR_NONE success