CigiIGMsgV2 Class Reference

#include <CigiIGMsgV2.h>

Inheritance diagram for CigiIGMsgV2:

CigiBaseIGMsg CigiBaseVariableSizePckt CigiBasePacket List of all members.

Public Member Functions

 CigiIGMsgV2 ()
virtual ~CigiIGMsgV2 ()
virtual int Pack (CigiBasePacket *Base, unsigned char *Buff, void *Spec) const
virtual int Unpack (unsigned char *Buff, bool Swap, void *Spec)
virtual int GetTruePacketSize (CigiBaseVariableSizePckt &refPacket)
int SetMsg (const Cigi_Ascii *MsgIn, bool bndchk=true)

Detailed Description

Definition at line 58 of file CigiIGMsgV2.h.


Constructor & Destructor Documentation

CigiIGMsgV2::CigiIGMsgV2 (  ) 

General Constructor

Definition at line 87 of file CigiIGMsgV2.cpp.

References CIGI_IG_MSG_PACKET_ID_V2, CigiBasePacket::MinorVersion, CigiBaseIGMsg::Msg, CigiBaseIGMsg::MsgID, CigiBaseIGMsg::MsgLen, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseVariableSizePckt::VariableDataSize, and CigiBasePacket::Version.

00088 {
00089 
00090    PacketID = CIGI_IG_MSG_PACKET_ID_V2;
00091    PacketSize = 8;
00092    Version = 2;
00093    MinorVersion = 0;
00094 
00095    MsgID = 0;
00096    memset(Msg,0,4);
00097    VariableDataSize = MsgLen = 4;
00098 
00099 }

CigiIGMsgV2::~CigiIGMsgV2 (  )  [virtual]

General Destructor

Definition at line 104 of file CigiIGMsgV2.cpp.

00105 {
00106 
00107 }


Member Function Documentation

int CigiIGMsgV2::GetTruePacketSize ( CigiBaseVariableSizePckt refPacket  )  [virtual]

A virtual function to determine the size that the packet will take up when packed.

Parameters:
refPacket - A pointer to the current pack point.
Returns:
The size that the packet will take up when packed

Implements CigiBaseIGMsg.

Definition at line 187 of file CigiIGMsgV2.cpp.

References CigiBaseVariableSizePckt::GetVariableDataSize().

00188 {
00189    return(refPacket.GetVariableDataSize() + 4);
00190 }

virtual int CigiIGMsgV2::Pack ( CigiBasePacket Base,
unsigned char *  Buff,
void *  Spec 
) const [virtual]

The virtual Pack function for CIGI 2

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 - This is not used in this class.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

int CigiIGMsgV2::SetMsg ( const Cigi_Ascii MsgIn,
bool  bndchk = true 
)

Sets the Msg with bound checking control

Parameters:
MsgIn - Message string
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 202 of file CigiIGMsgV2.cpp.

References CIGI_SUCCESS, CigiBaseIGMsg::Msg, CigiBasePacket::PacketSize, and CigiBaseVariableSizePckt::VariableDataSize.

00203 {
00204 
00205    MsgLen = strlen(MsgIn);
00206 
00207    if(MsgLen == 0)
00208    {
00209       MsgLen = 4;
00210       memset(Msg,0,4);
00211    }
00212    else if(MsgLen >= 95)
00213    {
00214       MsgLen = 100;
00215       memcpy(Msg,MsgIn,95);
00216       memset(&Msg[MsgLen],0,5);
00217       Msg[99] = 0;
00218    }
00219    else
00220    {
00221       memcpy(Msg,MsgIn,MsgLen);
00222 
00223       int tadj = (MsgLen + 1) % 4;
00224 
00225       tadj = (tadj == 0) ? 1 : (5 - tadj);
00226 
00227       memset(&Msg[MsgLen],0,(tadj+4));
00228 
00229       MsgLen += tadj;
00230    }
00231 
00232    VariableDataSize = MsgLen;
00233    PacketSize = VariableDataSize + 4;
00234 
00235    return(CIGI_SUCCESS);
00236 }

virtual int CigiIGMsgV2::Unpack ( unsigned char *  Buff,
bool  Swap,
void *  Spec 
) [virtual]

The virtual Unpack function for CIGI 2

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


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