📄 mbinary.cpp
字号:
#include "MBinary.h"
CMBinary *CMBinary::createFrom() {
/*
// return value : 汗荤登绢 父甸绢龙 货 按眉
*/
return createFrom(this);
}
CMBinary *CMBinary::createFrom(CMBinary *pSrc) {
/*
// pSrc : 汗荤且 家胶 按眉
// retrurn value : 汗荤登绢 父甸绢龙 货 按眉
*/
int size = pSrc->getSize();
byte *buffer = (byte *)MALLOC(sizeof(byte) * size);
MEMCPY(buffer, pSrc->getData(), size);
return new CMBinary(buffer, size);
}
void CMBinary::attachFrom(const byte *src, int size, boolean tail) {
/*
// pSrc : 汗荤秦棵 盔夯 滚欺
// size : 滚欺俊 甸绢 乐绰 单捞磐狼 农扁
// tail : 缔何盒俊 汗荤且 巴牢瘤 菊何盒俊 汗荤且 巴牢瘤狼 咯何
*/
byte *buffer;
const byte *p1,*p2;
int s1, s2;
buffer = (byte *)MALLOC( sizeof(byte) * ( getSize() + size ) );
if ( tail ) {
p1 = getData();
s1 = getSize();
p2 = src;
s2 = size;
} else {
p1 = src;
s1 = size;
p2 = getData();
s2 = getSize();
}
MEMCPY(buffer, p1, s1 );
// DBGPRINTF("size = %d %d",p2,s2);
MEMCPY(buffer+s1, p2, s2);
size_ = s1 + s2;
freeBinary();
dataOrigin_ = buffer;
realData_ = buffer;
}
void CMBinary::attachFrom(CMBinary *pSrc, boolean tail) {
/*
// pSrc : 汗荤秦棵 盔夯 按眉
// tail : 缔何盒俊 汗荤且 巴牢瘤 菊何盒俊 汗荤且 巴牢瘤狼 咯何
*/
attachFrom(pSrc->getData(), pSrc->getSize(), tail);
}
void CMBinary::attachTo(CMBinary *pTrg, boolean tail) {
/*
// pTrg : 汗荤窍霸瞪 格利 按眉
// tail : 缔何盒俊 汗荤且 巴牢瘤 菊何盒俊 汗荤且 巴牢瘤狼 咯何
*/
pTrg->attachFrom(this, tail);
}
void CMBinary::writeFrom(const byte *src, int trgOffset, int srcOffset, int len) {
/*
// src : 盔夯 滚欺
// trgOffset : 镜 困摹
// srcOffset : 盔夯 滚欺俊辑 佬阑 困摹
// len : 镜 官捞飘 荐
*/
MEMCPY(getData()+trgOffset, src+srcOffset, len);
}
void CMBinary::writeFrom(CMBinary *pSrc, int trgOffset, int srcOffset, int len) {
/*
// pSrc : 盔夯 滚欺
// trgOffset : 镜 困摹
// srcOffset : 盔夯 滚欺俊辑 佬阑 困摹
// len : 镜 官捞飘 荐
*/
writeFrom(pSrc->getData(), trgOffset, srcOffset, len);
}
void CMBinary::set(void *binaryData) {
/*
// binaryData : LoadResData 俊 狼秦 肺靛等 单捞磐 器牢磐
*/
dataOrigin_ = (byte *)binaryData;
realData_ = dataOrigin_ + (*dataOrigin_);
size_ = CMTool::BytesToIntLittleEndian(realData_,4)+4;
truncateHead(4);
}
void CMBinary::set(byte *pureData, uint32 size) {
/*
// pureData : 角力肺 荤侩窍霸瞪 单捞鸥 ( 抗. 拘绵秦力 饶 单捞磐 )
// size : 单捞磐狼 农扁
*/
dataOrigin_ = pureData;
realData_ = pureData;
size_ = size;
}
void CMBinary::freeBinary() {
FREE(dataOrigin_);
}
void CMBinary::truncateHead(int byte) {
/*
// byte : 磊福绊磊 窍绰 官捞飘荐
*/
realData_ += byte;
size_ -= byte;
}
void CMBinary::truncateTail(int byte) {
/*
// byte : 磊福绊磊 窍绰 官捞飘荐
*/
size_ -= byte;
}
void CMBinary::resizeBuffer(uint32 newSize) {
uint32 smallSize;
byte *buffer;
if ( newSize > size_ )
smallSize = size_;
else
smallSize = newSize;
buffer = (byte *)MALLOC(sizeof(byte) * newSize);
if ( smallSize > 0 ) {
MEMCPY(buffer, getData(), smallSize);
}
if ( newSize > smallSize ) {
MEMSET(buffer+smallSize, 0, newSize-smallSize);
}
freeBinary();
dataOrigin_ = buffer;
realData_ = buffer;
size_ = newSize;
}
byte *CMBinary::getData() {
return realData_;
}
uint32 CMBinary::getSize() {
return size_;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -