#include <CigiSymbolTextDefV3_3.h>
Inheritance diagram for CigiSymbolTextDefV3_3:
Public Member Functions | |
CigiSymbolTextDefV3_3 (void) | |
virtual | ~CigiSymbolTextDefV3_3 (void) |
CigiSymbolTextDefV3_3 (const std::string &TextIn) | |
CigiSymbolTextDefV3_3 (const CigiSymbolTextDefV3_3 &BaseIn) | |
CigiSymbolTextDefV3_3 & | operator= (const CigiSymbolTextDefV3_3 &BaseIn) |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
Definition at line 50 of file CigiSymbolTextDefV3_3.h.
CigiSymbolTextDefV3_3::CigiSymbolTextDefV3_3 | ( | void | ) |
General Constructor
Definition at line 60 of file CigiSymbolTextDefV3_3.cpp.
References CigiBaseSymbolTextDef::Alignment, CIGI_SYMBOL_TEXT_DEFINITION_PACKET_ID_V3_3, CIGI_SYMBOL_TEXT_DEFINITION_PACKET_SIZE_V3_3, CigiBaseSymbolTextDef::FontID, CigiBaseSymbolTextDef::FontSize, CigiBaseSymbolTextDef::LeftToRight, CigiBasePacket::MinorVersion, CigiBaseSymbolTextDef::Orientation, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSymbolTextDef::SymbolID, CigiBaseSymbolTextDef::Text, CigiBaseSymbolTextDef::TopLeft, CigiBaseVariableSizePckt::VariableDataSize, and CigiBasePacket::Version.
00061 { 00062 PacketID = CIGI_SYMBOL_TEXT_DEFINITION_PACKET_ID_V3_3; 00063 PacketSize = CIGI_SYMBOL_TEXT_DEFINITION_PACKET_SIZE_V3_3; 00064 Version = 3; 00065 MinorVersion = 3; 00066 VariableDataSize = 4; 00067 00068 SymbolID = 0; 00069 Alignment = TopLeft; 00070 Orientation = LeftToRight; 00071 FontID = 0; 00072 FontSize = 10.0; 00073 Text.clear(); 00074 }
CigiSymbolTextDefV3_3::~CigiSymbolTextDefV3_3 | ( | void | ) | [virtual] |
CigiSymbolTextDefV3_3::CigiSymbolTextDefV3_3 | ( | const std::string & | TextIn | ) |
General Constructor
Definition at line 86 of file CigiSymbolTextDefV3_3.cpp.
References CigiBaseSymbolTextDef::Alignment, CIGI_SYMBOL_TEXT_DEFINITION_PACKET_ID_V3_3, CIGI_SYMBOL_TEXT_DEFINITION_PACKET_SIZE_V3_3, CigiBaseSymbolTextDef::FontID, CigiBaseSymbolTextDef::FontSize, CigiBaseSymbolTextDef::LeftToRight, CigiBasePacket::MinorVersion, CigiBaseSymbolTextDef::Orientation, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSymbolTextDef::SetText(), CigiBaseSymbolTextDef::SymbolID, CigiBaseSymbolTextDef::TopLeft, CigiBaseVariableSizePckt::VariableDataSize, and CigiBasePacket::Version.
00087 { 00088 PacketID = CIGI_SYMBOL_TEXT_DEFINITION_PACKET_ID_V3_3; 00089 PacketSize = CIGI_SYMBOL_TEXT_DEFINITION_PACKET_SIZE_V3_3; 00090 Version = 3; 00091 MinorVersion = 3; 00092 VariableDataSize = 4; 00093 00094 SymbolID = 0; 00095 Alignment = TopLeft; 00096 Orientation = LeftToRight; 00097 FontID = 0; 00098 FontSize = 10.0; 00099 00100 SetText(TextIn,false); 00101 }
CigiSymbolTextDefV3_3::CigiSymbolTextDefV3_3 | ( | const CigiSymbolTextDefV3_3 & | BaseIn | ) |
Copy Constructor
Definition at line 106 of file CigiSymbolTextDefV3_3.cpp.
References CIGI_SYMBOL_TEXT_DEFINITION_PACKET_ID_V3_3, CIGI_SYMBOL_TEXT_DEFINITION_PACKET_SIZE_V3_3, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, and CigiBasePacket::Version.
00107 : CigiBaseSymbolTextDef((CigiBaseSymbolTextDef &)BaseIn) 00108 { 00109 PacketID = CIGI_SYMBOL_TEXT_DEFINITION_PACKET_ID_V3_3; 00110 PacketSize = CIGI_SYMBOL_TEXT_DEFINITION_PACKET_SIZE_V3_3; 00111 Version = 3; 00112 MinorVersion = 3; 00113 }
CigiSymbolTextDefV3_3& CigiSymbolTextDefV3_3::operator= | ( | const CigiSymbolTextDefV3_3 & | BaseIn | ) | [inline] |
Assignment operator
Definition at line 81 of file CigiSymbolTextDefV3_3.h.
00082 { 00083 return((CigiSymbolTextDefV3_3 &)CigiBaseSymbolTextDef::operator=((CigiBaseSymbolTextDef &)BaseIn)); 00084 }
int CigiSymbolTextDefV3_3::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
A virtual Pack function.
Base | - A pointer to the instance of the packet to be packed. (Downcast to CigiBasePacket) | |
Buff | - A pointer to the current pack point. | |
Spec | - A pointer to special data. |
Implements CigiBaseSymbolTextDef.
Definition at line 124 of file CigiSymbolTextDefV3_3.cpp.
References CigiBaseSymbolTextDef::Alignment, PackPointerUnion::c, PackPointerUnion::f, CigiBaseSymbolTextDef::FontID, CigiBaseSymbolTextDef::FontSize, CigiBaseSymbolTextDef::Orientation, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSymbolTextDef::SymbolID, CigiBaseSymbolTextDef::Text, and CigiBaseVariableSizePckt::VariableDataSize.
00125 { 00126 PackPointer CDta; 00127 00128 CigiSymbolTextDefV3_3 * Data = 00129 ( CigiSymbolTextDefV3_3 *)Base; 00130 00131 CDta.c = Buff; 00132 00133 *CDta.c++ = PacketID; 00134 *CDta.c++ = (PacketSize + Data->VariableDataSize); 00135 00136 *CDta.s++ = Data->SymbolID; 00137 00138 unsigned char HDta = 0; 00139 HDta |= (Data->Alignment & 0x0F); 00140 HDta |= ((Data->Orientation << 4) & 0x30); 00141 *CDta.c++ = HDta; 00142 00143 *CDta.c++ = Data->FontID; 00144 *CDta.s++ = 0; 00145 00146 *CDta.f++ = Data->FontSize; 00147 00148 int tSz = Data->Text.size(); 00149 memcpy(CDta.c,Data->Text.c_str(),tSz); 00150 CDta.c += tSz; 00151 memset(CDta.c,0,(Data->VariableDataSize - tSz)); 00152 00153 return(PacketSize + Data->VariableDataSize); 00154 00155 }
int CigiSymbolTextDefV3_3::Unpack | ( | Cigi_uint8 * | Buff, | |
bool | Swap, | |||
void * | Spec | |||
) | [virtual] |
A virtual Unpack function.
Buff | - A pointer to the current pack point. | |
Swap | - N/A for V1 & V2 | |
Spec | - A pointer to special data. |
Implements CigiBaseSymbolTextDef.
Definition at line 160 of file CigiSymbolTextDefV3_3.cpp.
References CigiBaseSymbolTextDef::Alignment, PackPointerUnion::c, CIGI_SYMBOL_TEXT_DEFINITION_PACKET_SIZE_V3_3, CigiSwap2(), CigiSwap4(), PackPointerUnion::f, CigiBaseSymbolTextDef::FontID, CigiBaseSymbolTextDef::FontSize, CigiBaseSymbolTextDef::Orientation, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSymbolTextDef::SymbolID, CigiBaseSymbolTextDef::Text, and CigiBaseVariableSizePckt::VariableDataSize.
00161 { 00162 PackPointer CDta; 00163 unsigned char HDta = 0; 00164 00165 CDta.c = Buff; 00166 00167 CDta.c++; // Step over packet id 00168 00169 // Determine variable data size; 00170 VariableDataSize = *CDta.c - CIGI_SYMBOL_TEXT_DEFINITION_PACKET_SIZE_V3_3; 00171 CDta.c++; 00172 00173 if(!Swap) 00174 { 00175 SymbolID = *CDta.s++; 00176 00177 HDta = *CDta.c++; 00178 00179 FontID = *CDta.c++; 00180 00181 CDta.s++; 00182 00183 FontSize = *CDta.f++; 00184 } 00185 else 00186 { 00187 CigiSwap2(&SymbolID, CDta.s++); 00188 00189 HDta = *CDta.c++; 00190 00191 FontID = *CDta.c++; 00192 00193 CDta.s++; 00194 00195 CigiSwap4(&FontSize, CDta.f++); 00196 } 00197 00198 #ifdef WIN32 00199 // this version will walk off the end of the array if the array is not 00200 // null-terminated 00201 Text = (char*)CDta.c; 00202 #elif defined( __GNUC__ ) 00203 // this version adds bogus nulls to the end 00204 // Text.assign( (char*)CDta.c, VariableDataSize ); 00205 // this version is correct, but traverses the string twice (once to 00206 // determine length, and again to copy) 00207 Text.assign( (char*)CDta.c, strnlen( (char*)CDta.c, VariableDataSize ) ); 00208 #else 00209 // unsafe version for unrecognized compilers 00210 // this version will walk off the end of the array if the array is not 00211 // null-terminated 00212 Text = (char*)CDta.c; 00213 #endif 00214 00215 Alignment = (AlignmentGrp)(HDta & 0x0f); 00216 Orientation = (OrientationGrp)((HDta >> 4) & 0x03); 00217 00218 return(PacketSize + VariableDataSize); 00219 00220 }