提交 d7970fba46547382a0154fc50bd6d1758f5bb694

作者 LJH 李佳桓
1 个父辈 d2c16ea4

add

正在显示 1 个修改的文件 包含 152 行增加0 行删除
  1 +/*
  2 + * Copyright 2007 Stephen Liu
  3 + * For license terms, see the file COPYING along with this library.
  4 + */
  5 +
  6 +#include "spmsgblock.hpp"
  7 +
  8 +#include "spbuffer.hpp"
  9 +#include "sputils.hpp"
  10 +
  11 +SP_MsgBlock :: ~SP_MsgBlock()
  12 +{
  13 +}
  14 +
  15 +//---------------------------------------------------------
  16 +
  17 +SP_MsgBlockList :: SP_MsgBlockList()
  18 +{
  19 + mList = new SP_ArrayList();
  20 +}
  21 +
  22 +SP_MsgBlockList :: ~SP_MsgBlockList()
  23 +{
  24 + for( int i = 0; i < mList->getCount(); i++ ) {
  25 + SP_MsgBlock * msgBlock = (SP_MsgBlock*)mList->getItem( i );
  26 + delete msgBlock;
  27 + }
  28 + delete mList;
  29 +
  30 + mList = NULL;
  31 +}
  32 +
  33 +void SP_MsgBlockList :: reset()
  34 +{
  35 + for( ; mList->getCount() > 0; ) {
  36 + SP_MsgBlock * msgBlock = (SP_MsgBlock*)mList->takeItem( SP_ArrayList::LAST_INDEX );
  37 + delete msgBlock;
  38 + }
  39 +}
  40 +
  41 +size_t SP_MsgBlockList :: getTotalSize() const
  42 +{
  43 + size_t totalSize = 0;
  44 +
  45 + for( int i = 0; i < mList->getCount(); i++ ) {
  46 + SP_MsgBlock * msgBlock = (SP_MsgBlock*)mList->getItem( i );
  47 + totalSize += msgBlock->getSize();
  48 + }
  49 +
  50 + return totalSize;
  51 +}
  52 +
  53 +int SP_MsgBlockList :: getCount() const
  54 +{
  55 + return mList->getCount();
  56 +}
  57 +
  58 +int SP_MsgBlockList :: append( SP_MsgBlock * msgBlock )
  59 +{
  60 + return mList->append( msgBlock );
  61 +}
  62 +
  63 +const SP_MsgBlock * SP_MsgBlockList :: getItem( int index ) const
  64 +{
  65 + return (SP_MsgBlock*)mList->getItem( index );
  66 +}
  67 +
  68 +SP_MsgBlock * SP_MsgBlockList :: takeItem( int index )
  69 +{
  70 + return (SP_MsgBlock*)mList->takeItem( index );
  71 +}
  72 +
  73 +//---------------------------------------------------------
  74 +
  75 +SP_BufferMsgBlock :: SP_BufferMsgBlock()
  76 +{
  77 + mBuffer = new SP_Buffer();
  78 + mToBeOwner = 1;
  79 +}
  80 +
  81 +SP_BufferMsgBlock :: SP_BufferMsgBlock( SP_Buffer * buffer, int toBeOwner )
  82 +{
  83 + mBuffer = buffer;
  84 + mToBeOwner = toBeOwner;
  85 +}
  86 +
  87 +SP_BufferMsgBlock :: ~SP_BufferMsgBlock()
  88 +{
  89 + if( mToBeOwner ) delete mBuffer;
  90 + mBuffer = NULL;
  91 +}
  92 +
  93 +const void * SP_BufferMsgBlock :: getData() const
  94 +{
  95 + return mBuffer->getBuffer();
  96 +}
  97 +
  98 +size_t SP_BufferMsgBlock :: getSize() const
  99 +{
  100 + return mBuffer->getSize();
  101 +}
  102 +
  103 +int SP_BufferMsgBlock :: append( const void * buffer, size_t len )
  104 +{
  105 + return mBuffer->append( buffer, len );
  106 +}
  107 +
  108 +//---------------------------------------------------------
  109 +
  110 +SP_SimpleMsgBlock :: SP_SimpleMsgBlock()
  111 +{
  112 + mData = NULL;
  113 + mSize = 0;
  114 + mToBeOwner = 0;
  115 +}
  116 +
  117 +SP_SimpleMsgBlock :: SP_SimpleMsgBlock( void * data, size_t size, int toBeOwner )
  118 +{
  119 + mData = data;
  120 + mSize = size;
  121 + mToBeOwner = toBeOwner;
  122 +}
  123 +
  124 +SP_SimpleMsgBlock :: ~SP_SimpleMsgBlock()
  125 +{
  126 + if( mToBeOwner && NULL != mData ) {
  127 + free( mData );
  128 + mData = NULL;
  129 + }
  130 +}
  131 +
  132 +const void * SP_SimpleMsgBlock :: getData() const
  133 +{
  134 + return mData;
  135 +}
  136 +
  137 +size_t SP_SimpleMsgBlock :: getSize() const
  138 +{
  139 + return mSize;
  140 +}
  141 +
  142 +void SP_SimpleMsgBlock :: setData( void * data, size_t size, int toBeOwner )
  143 +{
  144 + if( mToBeOwner && NULL != mData ) {
  145 + free( mData );
  146 + }
  147 +
  148 + mData = data;
  149 + mSize = size;
  150 + mToBeOwner = toBeOwner;
  151 +}
  152 +
... ...
注册登录 后发表评论