Ejemplo n.º 1
0
void CCBuffer::reset()
{
	moveWriterIndexToFront();
	moveReaderIndexToFront();
	DO_ASSIGN(_u_mark_pos, 0);
	DO_ASSIGN(_u_content_size, 0);
}
Ejemplo n.º 2
0
void CCBuffer::clear()
{
	DO_ASSIGN(_u_content_size, 0);
	DO_ASSIGN(_u_write_pos, 0);
	DO_ASSIGN(_u_read_pos, 0);
	DO_ASSIGN(_u_mark_pos, 0);
	memset(_p_buffer, 0, _u_buffer_size);
}
Ejemplo n.º 3
0
CCBuffer::CCBuffer(unsigned int n_capacity)
: _p_buffer(NULL)
, _u_write_pos(0)
, _u_read_pos(0)
, _u_content_size(0)
, _u_mark_pos(0)
{
	DO_ASSIGN(_u_buffer_size, n_capacity);
	DO_ASSIGN(_p_buffer, (char*) malloc(_u_buffer_size));
}
Ejemplo n.º 4
0
CCBuffer::CCBuffer(const char* p_data, unsigned int u_len)
: _p_buffer(NULL)
, _u_read_pos(0)
, _u_mark_pos(0)
{
	DO_ASSERT(p_data && LD(u_len, 0), "p_data && u_len > 0");

	DO_ASSIGN(_u_buffer_size, u_len);
	DO_ASSIGN(_u_write_pos, u_len);
	DO_ASSIGN(_u_content_size, u_len);
	DO_ASSIGN(_p_buffer, (char*) malloc(u_len));

	memcpy(_p_buffer, p_data, u_len);
}
Ejemplo n.º 5
0
void CCBuffer::writeChar(char data)
{
	_reallocBufferSizeInChanged(sizeof(char));
	DO_ASSIGN(QV(CA(_p_buffer, _u_write_pos)), data);
	AAI(_u_write_pos);
	MAXA(_u_content_size, _u_write_pos);
}
Ejemplo n.º 6
0
Ref* CCBuffer::copy()
{
	BEGIN_IF(LD(_u_content_size, 0))
	DO_ASSIGN(CCBuffer* p_buf, new CCBuffer(_p_buffer, _u_content_size));
	DO_RETURN_R(p_buf);
	BEGIN_ELSE
	DO_RETURN_NULL;
	END_IF
}
Ejemplo n.º 7
0
void CCBuffer::moveLeft(unsigned int u_len)
{
	BEGIN_IF(LE(_u_content_size, 0))
	DO_RETURN;
	END_IF
	DO_ASSERT(LNE(u_len, 0), "LNE(u_len, 0)");
	BEGIN_IF(LDE(u_len, _u_content_size)) clear();
	BEGIN_ELSE
	BEGIN_FOR(DO_ASSIGN(unsigned int i, u_len), LX(i, _u_content_size), AAI(i))
	DO_ASSIGN(QV(CA(_p_buffer, CS(i, u_len))), QV(CA(_p_buffer, i)));
	DO_ASSIGN(QV(CA(_p_buffer, i)), 0);
	END_FOR
	DO_ASSIGN(_u_write_pos, TO_UINT(MAX(0, CS(TO_INT(_u_write_pos), TO_INT(u_len)))));
	DO_ASSIGN(_u_read_pos, TO_UINT(MAX(0, CS(TO_INT(_u_read_pos), TO_INT(u_len)))));
	DO_ASSIGN(_u_mark_pos, TO_UINT(MAX(0, CS(TO_INT(_u_mark_pos), TO_INT(u_len)))));
	DO_ASSIGN(_u_content_size, CS(_u_content_size, u_len));
	END_IF
}
Ejemplo n.º 8
0
void CCBuffer::moveWriterIndexToBack()
{
	DO_ASSIGN(_u_write_pos, _u_content_size);
}
Ejemplo n.º 9
0
NS_CC_BEGIN

#ifndef JASON_LEE_LANGUAGE
#define JASON_LEE_LANGUAGE
#define BEGIN_IF(con) if(con) {
#define BEGIN_ELSE_IF(con) } else if(con) {
#define BEGIN_ELSE } else {
#define END_IF }
#define BEGIN_WHILE_TRUE while(true) {
#define BEGIN_WHILE(con) while(con) {
#define END_WHILE }
#define BEGIN_DO_WHILE do {
#define END_DO_WHILE(con) } while(con);
#define END_DO_WHILE_TRUE } while(true);
#define BEGIN_FOR(a,con,c) for(a;con;c) {
#define BEGIN_FOR_TRUE(a,c) for(a;true;c) {
#define END_FOR }
#define DO_CONTINUE continue
#define DO_BREAK break
#define DO_ASSIGN(n,v) n = v
#define DO_ASSERT(c,m) CCAssert(c,m)
#define DO_RETURN_R(r) return r
#define DO_RETURN_FLASE return false
#define DO_RETURN_TRUE return true
#define DO_RETURN_NULL return NULL
#define DO_RETURN_Z return 0
#define DO_RETURN return
#define R_FALSE false
#define R_TRUE true
#define TO_SHORT(a) ((short)a)
#define TO_USHORT(a) ((unsigned short)a)
#define TO_INT(a) ((int)a)
#define TO_UINT(a) ((unsigned int)a)
#define IAA(a) a++
#define AAI(a) ++a
#define ISS(a) a--
#define SSI(a) --a
#define CA(a,b) (a + b)
#define CS(a,b) (a - b)
#define CM(a,b) (a * b)
#define CD(a,b) (a / b)
#define LX(a,b) (a < b)
#define LD(a,b) (a > b)
#define LE(a,b) (a == b)
#define LXE(a,b) (a <= b)
#define LDE(a,b) (a >= b)
#define LNE(a,b) (a != b)
#define LQ(a,b) (a && b)
#define LH(a,b) (a || b)
#define AA(a,b) (a += b)
#define AS(a,b) (a -= b)
#define AM(a,b) (a *= b)
#define AD(a,b) a = a / b
#define MAXA(a,b) a = (((a) < (b)) ? (b) : (a))
#define MINA(a,b) a = (((a) < (b)) ? (a) : (b))
#define QV(a) *(a)
#define QZ(a) &(a)
#endif //JASON_LEE_LANGUAGE

CCBuffer::CCBuffer()
: _p_buffer(NULL)
, _u_write_pos(0)
, _u_read_pos(0)
, _u_content_size(0)
, _u_buffer_size(CCBUFFER_ORGINAL_SIZE)
, _u_mark_pos(0)
{
	DO_ASSIGN(_p_buffer, (char*) malloc(_u_buffer_size));
}
Ejemplo n.º 10
0
void CCBuffer::setWriterIndex(unsigned int u_pos)
{
	DO_ASSERT(LXE(u_pos, _u_content_size), "LXE(u_pos, _u_content_size)");
	DO_ASSIGN(_u_write_pos, u_pos);
}
Ejemplo n.º 11
0
void CCBuffer::resetReaderIndex()
{
	DO_ASSIGN(_u_read_pos, _u_mark_pos);
}
Ejemplo n.º 12
0
CCBuffer* CCBuffer::create()
{
	DO_ASSIGN(CCBuffer* pRet, new CCBuffer());
	pRet->autorelease();
	DO_RETURN_R(pRet);
}
Ejemplo n.º 13
0
void CCBuffer::moveReaderIndexToBack()
{
	DO_ASSIGN(_u_read_pos, _u_content_size);
}
Ejemplo n.º 14
0
void Buffer::setReaderIndex(unsigned int u_pos)
{
	DO_ASSERT(LXE(u_pos, _u_content_size), "LXE(u_pos, _u_content_size)");
	DO_ASSIGN(_u_read_pos, u_pos);
}
Ejemplo n.º 15
0
void CCBuffer::_reallocBufferSize()
{
	DO_ASSIGN(_u_buffer_size, CM(_u_buffer_size, 2));
	DO_ASSIGN(_p_buffer, (char*) realloc(_p_buffer, _u_buffer_size));
}
Ejemplo n.º 16
0
void CCBuffer::moveWriterIndexToFront()
{
	DO_ASSIGN(_u_write_pos, 0);
}
Ejemplo n.º 17
0
CCBuffer* CCBuffer::create(const char* p_data, unsigned int u_len)
{
	DO_ASSIGN(CCBuffer* pRet, new CCBuffer(p_data, u_len));
	pRet->autorelease();
	DO_RETURN_R(pRet);
}
Ejemplo n.º 18
0
CCBuffer* CCBuffer::create(unsigned int n_capacity)
{
	DO_ASSIGN(CCBuffer* pRet, new CCBuffer(n_capacity));
	pRet->autorelease();
	DO_RETURN_R(pRet);
}
Ejemplo n.º 19
0
void CCBuffer::moveReaderIndexToFront()
{
	DO_ASSIGN(_u_read_pos, 0);
}
Ejemplo n.º 20
0
void Buffer::markReaderIndex()
{
	DO_ASSIGN(_u_mark_pos, _u_read_pos);
}