本文整理汇总了C++中IOBuffer::Unpack方法的典型用法代码示例。如果您正苦于以下问题:C++ IOBuffer::Unpack方法的具体用法?C++ IOBuffer::Unpack怎么用?C++ IOBuffer::Unpack使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IOBuffer
的用法示例。
在下文中一共展示了IOBuffer::Unpack方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Unpack
int Person::Unpack(IOBuffer &Buffer){
int numBytes;
Clear();
numBytes = Buffer.Unpack(LastName);
LastName[numBytes] = 0;
if(numBytes==-1) return 0;
numBytes = Buffer.Unpack(FirstName);
if(numBytes==-1) return 0;
FirstName[numBytes] = 0;
numBytes = Buffer.Unpack(Address);
if(numBytes==-1) return 0;
Address[numBytes] = 0;
numBytes = Buffer.Unpack(City);
if(numBytes==-1) return 0;
City[numBytes] = 0;
numBytes = Buffer.Unpack(State);
if(numBytes==-1) return 0;
State[numBytes] = 0;
numBytes = Buffer.Unpack(ZipCode);
if(numBytes==-1) return 0;
ZipCode[numBytes] = 0;
return 1;
}
示例2: Unpack
bool Student::Unpack(IOBuffer& buffer) {
int numBytes;
string idString, completedCreditHoursString;
// 살아있는 레코드인지 일단 판별
char aliveCheck[1];
numBytes = buffer.Unpack(aliveCheck);
if( aliveCheck[0] == '-' ) {
_alive = false;
// 죽은 레코드면 더 이상 읽을 필요 없이 return
return false;
}
_alive = true;
// string에 바로 unpack이 안 되므로 char array를 생성
char *containerID = new char[64];
char *containerName = new char[64];
char *containerAddress = new char[64];
char *containerEnrollment = new char[64];
char *containerCredit = new char[64];
// 한 번에 메모리 해제하기 편하게 vector에 박아둔다
vector<char*> toRelease;
toRelease.push_back(containerID);
toRelease.push_back(containerName);
toRelease.push_back(containerAddress);
toRelease.push_back(containerEnrollment);
toRelease.push_back(containerCredit);
numBytes = buffer.Unpack(containerID);
if (numBytes == -1) {
release(toRelease);
return false;
}
numBytes = buffer.Unpack(containerName);
if (numBytes == -1) {
release(toRelease);
return false;
}
numBytes = buffer.Unpack(containerAddress);
if (numBytes == -1) {
release(toRelease);
return false;
}
numBytes = buffer.Unpack(containerEnrollment);
if (numBytes == -1) {
release(toRelease);
return false;
}
numBytes = buffer.Unpack(containerCredit);
if (numBytes == -1) {
release(toRelease);
return false;
}
// 가져온 데이터들 다시 멤버 변수에 넣는다.
_id = atoi(containerID);
_name = string(containerName);
_address = string(containerAddress);
_dateOfFirstEnrollment = string(containerEnrollment);
_completedCreditHours = atoi(containerCredit);
// 메모리 릴리즈
release(toRelease);
return true;
}