AngelScript
asIScriptGeneric Class Referenceabstract

The interface for the generic calling convention.

Public Member Functions

Miscellaneous
virtual asIScriptEngineGetEngine () const =0
 Returns a pointer to the script engine. More...
 
virtual asIScriptFunctionGetFunction () const =0
 Returns the function that is being called. More...
 
virtual void * GetAuxiliary () const =0
 Return the auxiliary registered with the function. More...
 
Object
virtual void * GetObject ()=0
 Returns the object pointer if this is a class method, or null if it not. More...
 
virtual int GetObjectTypeId () const =0
 Returns the type id of the object if this is a class method. More...
 
Arguments
virtual int GetArgCount () const =0
 Returns the number of arguments. More...
 
virtual int GetArgTypeId (asUINT arg, asDWORD *flags=0) const =0
 Returns the type id of the argument. More...
 
virtual asBYTE GetArgByte (asUINT arg)=0
 Returns the value of an 8-bit argument. More...
 
virtual asWORD GetArgWord (asUINT arg)=0
 Returns the value of a 16-bit argument. More...
 
virtual asDWORD GetArgDWord (asUINT arg)=0
 Returns the value of a 32-bit integer argument. More...
 
virtual asQWORD GetArgQWord (asUINT arg)=0
 Returns the value of a 64-bit integer argument. More...
 
virtual float GetArgFloat (asUINT arg)=0
 Returns the value of a float argument. More...
 
virtual double GetArgDouble (asUINT arg)=0
 Returns the value of a double argument. More...
 
virtual void * GetArgAddress (asUINT arg)=0
 Returns the address held in a reference or handle argument. More...
 
virtual void * GetArgObject (asUINT arg)=0
 Returns a pointer to the object in a object argument. More...
 
virtual void * GetAddressOfArg (asUINT arg)=0
 Returns a pointer to the argument value. More...
 
Return value
virtual int GetReturnTypeId (asDWORD *flags=0) const =0
 Gets the type id of the return value. More...
 
virtual int SetReturnByte (asBYTE val)=0
 Sets the 8-bit return value. More...
 
virtual int SetReturnWord (asWORD val)=0
 Sets the 16-bit return value. More...
 
virtual int SetReturnDWord (asDWORD val)=0
 Sets the 32-bit integer return value. More...
 
virtual int SetReturnQWord (asQWORD val)=0
 Sets the 64-bit integer return value. More...
 
virtual int SetReturnFloat (float val)=0
 Sets the float return value. More...
 
virtual int SetReturnDouble (double val)=0
 Sets the double return value. More...
 
virtual int SetReturnAddress (void *addr)=0
 Sets the address return value when the return is a reference or handle. More...
 
virtual int SetReturnObject (void *obj)=0
 Sets the object return value. More...
 
virtual void * GetAddressOfReturnLocation ()=0
 Gets the address to the memory where the return value should be placed. More...
 

Member Function Documentation

◆ GetAddressOfArg()

virtual void* asIScriptGeneric::GetAddressOfArg ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
A pointer to the argument value.

◆ GetAddressOfReturnLocation()

virtual void* asIScriptGeneric::GetAddressOfReturnLocation ( )
pure virtual
Returns
A pointer to the memory where the return values is to be placed.

The memory is not initialized, so if you're going to return a complex type by value you shouldn't use the assignment operator to initialize it. Instead use the placement new operator to call the type's copy constructor to perform the initialization.

new(gen->GetAddressOfReturnLocation()) std::string(myRetValue);

The placement new operator works for primitive types too, so this method is ideal for writing automatically generated functions that works the same way for all types.

◆ GetArgAddress()

virtual void* asIScriptGeneric::GetArgAddress ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
The address argument value, which can be a reference or and object handle.

Don't release the pointer if this is an object or object handle, the asIScriptGeneric object will do that for you.

◆ GetArgByte()

virtual asBYTE asIScriptGeneric::GetArgByte ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
The 1 byte argument value.

◆ GetArgCount()

virtual int asIScriptGeneric::GetArgCount ( ) const
pure virtual
Returns
The number of arguments to the function.

◆ GetArgDouble()

virtual double asIScriptGeneric::GetArgDouble ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
The double argument value.

◆ GetArgDWord()

virtual asDWORD asIScriptGeneric::GetArgDWord ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
The 4 byte argument value.

◆ GetArgFloat()

virtual float asIScriptGeneric::GetArgFloat ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
The float argument value.

◆ GetArgObject()

virtual void* asIScriptGeneric::GetArgObject ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
A pointer to the object argument, which can be an object value or object handle.

Don't release the pointer if this is an object handle, the asIScriptGeneric object will do that for you.

◆ GetArgQWord()

virtual asQWORD asIScriptGeneric::GetArgQWord ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
The 8 byte argument value.

◆ GetArgTypeId()

virtual int asIScriptGeneric::GetArgTypeId ( asUINT  arg,
asDWORD flags = 0 
) const
pure virtual
Parameters
[in]argThe argument index.
[out]flagsA combination of asETypeModifiers.
Returns
The type id of the argument.

◆ GetArgWord()

virtual asWORD asIScriptGeneric::GetArgWord ( asUINT  arg)
pure virtual
Parameters
[in]argThe argument index.
Returns
The 2 byte argument value.

◆ GetAuxiliary()

virtual void* asIScriptGeneric::GetAuxiliary ( ) const
pure virtual
Returns
The auxiliary registered with the function.

◆ GetEngine()

virtual asIScriptEngine* asIScriptGeneric::GetEngine ( ) const
pure virtual
Returns
A pointer to the engine.

◆ GetFunction()

virtual asIScriptFunction* asIScriptGeneric::GetFunction ( ) const
pure virtual
Returns
The function that is being called.

◆ GetObject()

virtual void* asIScriptGeneric::GetObject ( )
pure virtual
Returns
A pointer to the object, if this is a method.

◆ GetObjectTypeId()

virtual int asIScriptGeneric::GetObjectTypeId ( ) const
pure virtual
Returns
The type id of the object if this is a method.

◆ GetReturnTypeId()

virtual int asIScriptGeneric::GetReturnTypeId ( asDWORD flags = 0) const
pure virtual
Parameters
[out]flagsA combination of asETypeModifiers.
Returns
The type id of the return value.

◆ SetReturnAddress()

virtual int asIScriptGeneric::SetReturnAddress ( void *  addr)
pure virtual
Parameters
[in]addrThe return value, which is an address.
Returns
A negative value on error.
Return values
asINVALID_TYPEThe return type is not a reference or handle.

Sets the address return value. If an object handle the application must first increment the reference counter, unless it won't keep a reference itself.

◆ SetReturnByte()

virtual int asIScriptGeneric::SetReturnByte ( asBYTE  val)
pure virtual
Parameters
[in]valThe return value.
Returns
A negative value on error.
Return values
asINVALID_TYPEThe return type is not an 8-bit value. Sets the 1 byte return value.

◆ SetReturnDouble()

virtual int asIScriptGeneric::SetReturnDouble ( double  val)
pure virtual
Parameters
[in]valThe return value.
Returns
A negative value on error.
Return values
asINVALID_TYPEThe return type is not a 64-bit value. Sets the double return value.

◆ SetReturnDWord()

virtual int asIScriptGeneric::SetReturnDWord ( asDWORD  val)
pure virtual
Parameters
[in]valThe return value.
Returns
A negative value on error.
Return values
asINVALID_TYPEThe return type is not a 32-bit value. Sets the 4 byte return value.

◆ SetReturnFloat()

virtual int asIScriptGeneric::SetReturnFloat ( float  val)
pure virtual
Parameters
[in]valThe return value.
Returns
A negative value on error.
Return values
asINVALID_TYPEThe return type is not a 32-bit value. Sets the float return value.

◆ SetReturnObject()

virtual int asIScriptGeneric::SetReturnObject ( void *  obj)
pure virtual
Parameters
[in]objA pointer to the object return value.
Returns
A negative value on error.
Return values
asINVALID_TYPEThe return type is not an object value or handle.

If the function returns an object, the library will automatically do what is necessary based on how the object was declared, i.e. if the function was registered to return a handle then the library will call the addref behaviour. If it was registered to return an object by value, then the library will make a copy of the object.

◆ SetReturnQWord()

virtual int asIScriptGeneric::SetReturnQWord ( asQWORD  val)
pure virtual
Parameters
[in]valThe return value.
Returns
A negative value on error.
Return values
asINVALID_TYPEThe return type is not a 64-bit value. Sets the 8 byte return value.

◆ SetReturnWord()

virtual int asIScriptGeneric::SetReturnWord ( asWORD  val)
pure virtual
Parameters
[in]valThe return value.
Returns
A negative value on error.
Return values
asINVALID_TYPEThe return type is not a 16-bit value. Sets the 2 byte return value.

The documentation for this class was generated from the following file:
asIScriptGeneric::GetAddressOfReturnLocation
virtual void * GetAddressOfReturnLocation()=0
Gets the address to the memory where the return value should be placed.