⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spmsgblock.cpp

📁 spserver 是一个实现了半同步/半异步(Half-Sync/Half-Async)和领导者/追随者(Leader/Follower) 模式的服务器框架
💻 CPP
字号:
/* * Copyright 2007 Stephen Liu * For license terms, see the file COPYING along with this library. */#include "spmsgblock.hpp"#include "spbuffer.hpp"#include "sputils.hpp"SP_MsgBlock :: ~SP_MsgBlock(){}//---------------------------------------------------------SP_MsgBlockList :: SP_MsgBlockList(){	mList = new SP_ArrayList();}SP_MsgBlockList :: ~SP_MsgBlockList(){	for( int i = 0; i < mList->getCount(); i++ ) {		SP_MsgBlock * msgBlock = (SP_MsgBlock*)mList->getItem( i );		delete msgBlock;	}	delete mList;	mList = NULL;}size_t SP_MsgBlockList :: getTotalSize() const{	size_t totalSize = 0;	for( int i = 0; i < mList->getCount(); i++ ) {		SP_MsgBlock * msgBlock = (SP_MsgBlock*)mList->getItem( i );		totalSize += msgBlock->getSize();	}	return totalSize;}int SP_MsgBlockList :: getCount() const{	return mList->getCount();}int SP_MsgBlockList :: append( SP_MsgBlock * msgBlock ){	return mList->append( msgBlock );}const SP_MsgBlock * SP_MsgBlockList :: getItem( int index ) const{	return (SP_MsgBlock*)mList->getItem( index );}SP_MsgBlock * SP_MsgBlockList :: takeItem( int index ){	return (SP_MsgBlock*)mList->takeItem( index );}//---------------------------------------------------------SP_BufferMsgBlock :: SP_BufferMsgBlock(){	mBuffer = new SP_Buffer();	mToBeOwner = 1;}SP_BufferMsgBlock :: SP_BufferMsgBlock( SP_Buffer * buffer, int toBeOwner ){	mBuffer = buffer;	mToBeOwner = toBeOwner;}SP_BufferMsgBlock :: ~SP_BufferMsgBlock(){	if( mToBeOwner ) delete mBuffer;	mBuffer = NULL;}const void * SP_BufferMsgBlock :: getData() const{	return mBuffer->getBuffer();}size_t SP_BufferMsgBlock :: getSize() const{	return mBuffer->getSize();}int SP_BufferMsgBlock :: append( const void * buffer, size_t len ){	return mBuffer->append( buffer, len );}//---------------------------------------------------------SP_SimpleMsgBlock :: SP_SimpleMsgBlock(){	mData = NULL;	mSize = 0;	mToBeOwner = 0;}SP_SimpleMsgBlock :: SP_SimpleMsgBlock( void * data, size_t size, int toBeOwner ){	mData = data;	mSize = size;	mToBeOwner = toBeOwner;}SP_SimpleMsgBlock :: ~SP_SimpleMsgBlock(){	if( mToBeOwner && NULL != mData ) {		free( mData );		mData = NULL;	}}const void * SP_SimpleMsgBlock :: getData() const{	return mData;}size_t SP_SimpleMsgBlock :: getSize() const{	return mSize;}void SP_SimpleMsgBlock :: setData( void * data, size_t size, int toBeOwner ){	if( mToBeOwner && NULL != mData ) {		free( mData );	}	mData = data;	mSize = size;	mToBeOwner = toBeOwner;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -