bool Student::Pack(IOBuffer& buffer) {
	int numBytes;
	// 일단 비우고
	buffer.Clear ();

	// 살아있으면 +
	if( _alive ) {
		numBytes = buffer.Pack("+");
	} else {
		// 죽은 레코드면 -
		numBytes = buffer.Pack("-");
	}

	// integer들을 string으로 생성
	string idString = to_string(_id);
	string completedCreditHoursString = to_string(_completedCreditHours);

	// string들을 모두 pack
	numBytes = buffer.Pack (idString.c_str());
	if (numBytes == -1) return false;
	numBytes = buffer.Pack (_name.c_str());
	if (numBytes == -1) return false;
	numBytes = buffer.Pack (_address.c_str());
	if (numBytes == -1) return false;
	numBytes = buffer.Pack (_dateOfFirstEnrollment.c_str());
	if (numBytes == -1) return false;
	numBytes = buffer.Pack (completedCreditHoursString.c_str());
	if (numBytes == -1) return false;

	return true;
}
Ejemplo n.º 2
0
int Person::Pack(IOBuffer &Buffer) const{
    int numBytes;
    Buffer.Clear();
    numBytes = Buffer.Pack(LastName);
    if(numBytes==-1) return 0;
    numBytes = Buffer.Pack(FirstName);
    if(numBytes==-1) return 0;
    numBytes = Buffer.Pack(Address);
    if(numBytes==-1) return 0;
    numBytes = Buffer.Pack(City);
    if(numBytes==-1) return 0;
    numBytes = Buffer.Pack(State);
    if(numBytes==-1) return 0;
    numBytes = Buffer.Pack(ZipCode);
    if(numBytes==-1) return 0;
    return 1;
}