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; }
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; }