#include <BOpcodeHandler.h>
Public Member Functions | |
TK_Status | Clone (BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const |
TK_Status | Execute (BStreamFileToolkit &tk) alter |
int | GetSize () const |
unsigned char alter * | GetUserData () alter |
unsigned char const * | GetUserData () const |
TK_Status | Read (BStreamFileToolkit &tk) alter |
TK_Status | ReadAscii (BStreamFileToolkit &tk) alter |
Deprecated. | |
void | Reset () alter |
void | Resize (int size) alter |
void | SetSize (int size) alter |
void | SetUserData (int size, unsigned char const *bytes=0) alter |
TK_User_Data () | |
TK_Status | Write (BStreamFileToolkit &tk) alter |
TK_Status | WriteAscii (BStreamFileToolkit &tk) alter |
Deprecated. | |
Protected Member Functions | |
void | set_data (int size, unsigned char const *bytes=0) alter |
internal use | |
Protected Attributes | |
int | m_buffer_size |
unsigned char * | m_data |
int | m_size |
The HOOPS Stream File can contain user-data, which is denoted by TKE_Start_User_Data. TK_User_Data will handle the TKE_Start_User_Data opcode by simply reading the data, and not doing anything with it. Therefore, this class must be overloaded in order to both import (and handle), as well as export user-data.
To ensure that user data will be gracefully handled (skipped-over) by non-custom handlers (meaning, an application that is using the default toolkit and doesn't understand the custom user data), custom user data must be written out by exporting the following elements in order:
1. the TKE_Start_User_Data opcode 2. the number of bytes of user data that will follow 3. the user data itself 4. the TKE_Stop_User_Data_Opcode
See the HOOPS/Stream Programming Guide for more detailed information about how to handle user data and create custom files.
TK_User_Data::TK_User_Data | ( | ) | [inline] |
constructor
TK_Status TK_User_Data::Clone | ( | BStreamFileToolkit & | tk, | |
BBaseOpcodeHandler ** | handler | |||
) | const [virtual] |
Copies the opcode handler
tk | A reference to the BStreamFileToolkit object. | |
handler | A pointer to the opcode handler object. Passed by reference. |
Reimplemented from BBaseOpcodeHandler.
TK_Status TK_User_Data::Execute | ( | BStreamFileToolkit & | tk | ) | [virtual] |
Processes the binary data that has been read for the current object, which involves passing the data to application-specific data structures.
tk | A reference to the BStreamFileToolkit object. |
Reimplemented from BBaseOpcodeHandler.
int TK_User_Data::GetSize | ( | ) | const [inline] |
Returns the size of the data buffer
unsigned char alter* TK_User_Data::GetUserData | ( | ) | [inline] |
Returns the address of the data buffer, which may be modified directly
unsigned char const* TK_User_Data::GetUserData | ( | ) | const [inline] |
Returns the address of the data buffer
TK_Status TK_User_Data::Read | ( | BStreamFileToolkit & | tk | ) | [virtual] |
Reads data from the toolkit buffer, decodes/decompresses it, and maps it to the opcode handlers data members. User-defined classes which need to write out custom data should utilize one of the available GetData() methods.
tk | A reference to the BStreamFileToolkit object. |
Implements BBaseOpcodeHandler.
void TK_User_Data::Reset | ( | ) | [virtual] |
Resets the current opcode handler. This is called by the toolkit when it is done processing an opcode. This method reinitializes any opcode handler variables and frees up temporary data.
Reimplemented from BBaseOpcodeHandler.
void TK_User_Data::Resize | ( | int | size | ) |
Change the size of the data buffer
void TK_User_Data::set_data | ( | int | size, | |
unsigned char const * | bytes = 0 | |||
) | [protected] |
internal use
for internal use only
void TK_User_Data::SetSize | ( | int | size | ) |
Sets the size of the data buffer.
void TK_User_Data::SetUserData | ( | int | size, | |
unsigned char const * | bytes = 0 | |||
) | [inline] |
Sets the data buffer. Allocates a buffer which can hold 'size' bytes and, if specified, copies 'bytes' into the buffer
TK_Status TK_User_Data::Write | ( | BStreamFileToolkit & | tk | ) | [virtual] |
Encodes/compresses data and writes data to the toolkit buffer. User-defined classes which need to write out custom data should utilize one of the available PutData() methods, and first write out the opcode associated with the group of binary data followed by the data itself.
tk | A reference to the BStreamFileToolkit object. |
Implements BBaseOpcodeHandler.
int TK_User_Data::m_buffer_size [protected] |
internal use; Real m_data size
unsigned char* TK_User_Data::m_data [protected] |
internal use; User data
int TK_User_Data::m_size [protected] |
internal use; Number of bytes of user data