00001
00049 #define _EXPORT_CCL_
00050
00051 #include "CigiMessage.h"
00052
00053 #include <stdlib.h>
00054
00055
00056
00057
00058
00059
00060
00061
00062 CigiMessage::CigiMessage()
00063 : BufferSize(0)
00064 , CrntMsgBuf(NULL)
00065 , CrntFillBuf(NULL)
00066 , PackagedMsg(NULL)
00067 , ATbl(NULL)
00068 , Session(NULL)
00069 {
00070
00071 }
00072
00073
00074
00075
00076 CigiMessage::~CigiMessage()
00077 {
00078
00079 if(Buffers.size() > 0)
00080 {
00081 list<CigiMessageBuffer *>::iterator iBuf;
00082 for(iBuf=Buffers.begin();iBuf!=Buffers.end();iBuf++)
00083 {
00084 delete (*iBuf);
00085 }
00086 Buffers.clear();
00087 }
00088
00089 if(AvailBuff.size() > 0)
00090 {
00091 list<CigiMessageBuffer *>::iterator iBuf;
00092 for(iBuf=AvailBuff.begin();iBuf!=AvailBuff.end();iBuf++)
00093 {
00094 delete (*iBuf);
00095 }
00096 AvailBuff.clear();
00097 }
00098
00099 }
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109 int CigiMessage::CreateBuffer(const int NumBuf, const int BufLen)
00110 {
00111 if(BufferSize <= 0)
00112 BufferSize = BufLen;
00113
00114 int BuffCnt = AvailBuff.size();
00115 int AddBuff = 0;
00116 if(BuffCnt < NumBuf)
00117 AddBuff = NumBuf - BuffCnt;
00118
00119 if(AddBuff > 0)
00120 {
00121 for(int ndx=0;ndx<AddBuff;ndx++)
00122 {
00123 CigiMessageBuffer *NewBuff = new CigiMessageBuffer(BufferSize);
00124 AvailBuff.push_back(NewBuff);
00125 }
00126 }
00127
00128 return(CIGI_SUCCESS);
00129
00130 }