The interface for the string factory.
More...
|
virtual const void * | GetStringConstant (const char *data, asUINT length)=0 |
| Called by engine to instantiate a string constant.
|
|
virtual int | ReleaseStringConstant (const void *str)=0 |
| Called by engine when the string constant is no longer used.
|
|
virtual int | GetRawStringData (const void *str, char *data, asUINT *length) const =0 |
| Called by engine to get the raw string data for serialization.
|
|
This interface is used to manage the string constants that the scripts use. If string constants should be supported the application must implement this object and register it with asIScriptEngine::RegisterStringFactory.
◆ GetRawStringData()
virtual int asIStringFactory::GetRawStringData |
( |
const void * |
str, |
|
|
char * |
data, |
|
|
asUINT * |
length |
|
) |
| const |
|
pure virtual |
- Parameters
-
[in] | str | The same pointer returned by GetStringConstant |
[out] | data | A pointer to the data buffer that should be filled with the content |
[out] | length | A pointer to the variable that should be set with the length of the data |
- Returns
- A negative value on error.
The engine will first call this with data set to null to retrieve the size of the buffer that must be allocated. Then the engine will call the method once more with the allocated data buffer to be filled with the content. The length should always be informed in number of bytes.
◆ GetStringConstant()
virtual const void * asIStringFactory::GetStringConstant |
( |
const char * |
data, |
|
|
asUINT |
length |
|
) |
| |
|
pure virtual |
- Parameters
-
[in] | data | The content of the string |
[in] | length | The length in bytes of the data buffer |
- Returns
- The pointer to the instantiated string constant
The contents of data must be copied by the string factory, as the engine will not keep a copy of the original data.
The string factory can cache and return a pointer to the same instance multiple times if the same string content is requested multiple times. If the same instance is returned multiple times the string factory must keep track of the number of instances as ReleaseStringConstant will be called for each of them.
◆ ReleaseStringConstant()
virtual int asIStringFactory::ReleaseStringConstant |
( |
const void * |
str | ) |
|
|
pure virtual |
- Parameters
-
- Returns
- A negative value on error.
The engine will call this method for each pointer returned by GetStringConstant. If the string factory returns a pointer to the same instance multiple times, then the string instance can only be destroyed when the last call to ReleaseStringConstant for that pointer is made.
The documentation for this class was generated from the following file: