CigiSymbolTextDefV3_3 Class Reference

#include <CigiSymbolTextDefV3_3.h>

Inheritance diagram for CigiSymbolTextDefV3_3:

CigiBaseSymbolTextDef CigiBaseVariableSizePckt CigiBasePacket List of all members.

Public Member Functions

 CigiSymbolTextDefV3_3 (void)
virtual ~CigiSymbolTextDefV3_3 (void)
 CigiSymbolTextDefV3_3 (const std::string &TextIn)
 CigiSymbolTextDefV3_3 (const CigiSymbolTextDefV3_3 &BaseIn)
CigiSymbolTextDefV3_3operator= (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)

Detailed Description

The base class for all packets.

Definition at line 50 of file CigiSymbolTextDefV3_3.h.


Constructor & Destructor Documentation

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]

General Destructor

Definition at line 79 of file CigiSymbolTextDefV3_3.cpp.

00080 {
00081 }

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.


Member Function Documentation

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.

Parameters:
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.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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.

Parameters:
Buff - A pointer to the current pack point.
Swap - N/A for V1 & V2
Spec - A pointer to special data.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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 }


The documentation for this class was generated from the following files:
Generated on Wed Apr 29 09:00:11 2009 for CCL by  doxygen 1.4.7