CigiSymbolCloneV3_3 Class Reference

#include <CigiSymbolCloneV3_3.h>

Inheritance diagram for CigiSymbolCloneV3_3:

CigiBaseSymbolClone CigiBasePacket List of all members.

Public Member Functions

 CigiSymbolCloneV3_3 (void)
virtual ~CigiSymbolCloneV3_3 (void)
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 CigiSymbolCloneV3_3.h.


Constructor & Destructor Documentation

CigiSymbolCloneV3_3::CigiSymbolCloneV3_3 ( void   ) 

General Constructor

Definition at line 56 of file CigiSymbolCloneV3_3.cpp.

References CIGI_SYMBOL_CLONE_PACKET_ID_V3_3, CIGI_SYMBOL_CLONE_PACKET_SIZE_V3_3, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSymbolClone::SourceID, CigiBaseSymbolClone::SourceType, CigiBaseSymbolClone::SymbolID, CigiBaseSymbolClone::SymbolSrc, and CigiBasePacket::Version.

00057 {
00058    PacketID = CIGI_SYMBOL_CLONE_PACKET_ID_V3_3;
00059    PacketSize = CIGI_SYMBOL_CLONE_PACKET_SIZE_V3_3;
00060    Version = 3;
00061    MinorVersion = 3;
00062 
00063    SymbolID = 0;
00064    SourceType = CigiBaseSymbolClone::SymbolSrc;
00065    SourceID = 0;
00066 
00067 }

CigiSymbolCloneV3_3::~CigiSymbolCloneV3_3 ( void   )  [virtual]

General Destructor

Definition at line 72 of file CigiSymbolCloneV3_3.cpp.

00073 {
00074 }


Member Function Documentation

int CigiSymbolCloneV3_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 CigiBaseSymbolClone.

Definition at line 85 of file CigiSymbolCloneV3_3.cpp.

References PackPointerUnion::c, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSymbolClone::SourceID, CigiBaseSymbolClone::SourceType, CigiBaseSymbolClone::SymbolID, and CigiBaseSymbolClone::SymbolTemplateSrc.

00086 {
00087    PackPointer CDta;
00088 
00089    CigiSymbolCloneV3_3 * Data =
00090       ( CigiSymbolCloneV3_3 *)Base;
00091 
00092    CDta.c = Buff;
00093 
00094    *CDta.c++ = PacketID;
00095    *CDta.c++ = PacketSize;
00096 
00097    *CDta.s++ = Data->SymbolID;
00098 
00099    if(Data->SourceType == CigiBaseSymbolClone::SymbolTemplateSrc)
00100       *CDta.c++ = 0x01;
00101    else
00102       *CDta.c++ = 0;
00103 
00104    *CDta.c++ = 0;
00105 
00106    *CDta.s++ = Data->SourceID;
00107 
00108    return(PacketSize);
00109 
00110 }

int CigiSymbolCloneV3_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 CigiBaseSymbolClone.

Definition at line 115 of file CigiSymbolCloneV3_3.cpp.

References PackPointerUnion::c, CigiSwap2(), CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSymbolClone::SourceID, CigiBaseSymbolClone::SourceType, and CigiBaseSymbolClone::SymbolID.

00116 {
00117    PackPointer CDta;
00118    unsigned char HDta = 0;
00119 
00120    CDta.c = Buff;
00121 
00122    CDta.c += 2;  // Step over packet id and size
00123 
00124    if(!Swap)
00125    {
00126 
00127       SymbolID = *CDta.s++;
00128 
00129       HDta = *CDta.c++;
00130 
00131       CDta.c++;
00132 
00133       SourceID = *CDta.s++;
00134 
00135    }
00136    else
00137    {
00138 
00139       CigiSwap2(&SymbolID, CDta.s++);
00140 
00141       HDta = *CDta.c++;
00142 
00143       CDta.c++;
00144 
00145       CigiSwap2(&SourceID, CDta.s++);
00146 
00147    }
00148 
00149    SourceType = (CigiBaseSymbolClone::SymbolSourceGrp)(HDta & 0x01);
00150 
00151    return(PacketSize);
00152 
00153 }


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