Object Serialization, Java, and C++
By Kevin Haverlock
Dr. Dobb's Journal August 1998
<b>(a)</b> . . . SerializableInputStream is = new SerialiableInputStream(socket); TimeDate timeDate = new TimeDate() . . . is.readObject(timeDate); class SerializableInputStream { . . . public void readObject(SerializableObject serializedObj) } serializedObj.read(this); } . . . } class TimeDate extends SerializableObject { . . . public void read(SerializableInputStream inputStream) { month_ = inputStream.readString( ); day_ = inputStream.readString( ); year_ = inputStream.readInt( ); date_ = inputStream.readInt( ); hour_ = inputStream.readInt( ); minutes_ = inputStream.readInt( ); seconds_ = inputStream.readInt( ); } . . . } <b>(b)</b> TimeDate *timeDate = new TimeDate() . . . SerializableOutputStream os = SerializableOutputStream(socket); . . . timeDate->setServerTime( ); os->writeObject(timeDate) SerializableInputStream::writeObject(SerializedObject&serializedObj) { serializedObj.write(*this); } void TimeDate::write (SerializableOutputStream &outputStream) { outputStream.writeString (month_); outputStream.writeString (day_); outputStream.writeInt (year_); outputStream.writeInt (date_); outputStream.writeInt (hour_); outputStream.writeInt (minutes_); outputStream.writeInt (seconds_); }
Figure 4: (a) Java code fragment showing the reading of the serialized data stream; (b) C++ code fragment showing writing to the serialized data stream.
Copyright © 1998, Dr. Dobb's Journal