From kde-core-devel Wed Nov 16 00:41:20 2005 From: Tobias Koenig Date: Wed, 16 Nov 2005 00:41:20 +0000 To: kde-core-devel Subject: Re: Proposed new KDateTime class Message-Id: <20051116004120.GD2240 () ghostdog ! localnet> X-MARC-Message: https://marc.info/?l=kde-core-devel&m=113210172623705 On Tue, Nov 15, 2005 at 01:17:42PM +0000, David Jarvie wrote: > On Mon, Nov 14 2005 at 11:06, Tobias Koenig wrote: Hi David, > >Yes, they are. In 4.0 we'd like to be able to serialize libkcal objects, > >so a serializer for a datetime class is a must. > > That would require a serialiser for the KTimezone class (which is one of the private > components of KDateTime). KTimezone is polymorphic, so you couldn't have > operator>>(QDataStream&, KTimezone&) > because the memory size required by the KTimezone object would be unknown. The class KTimezone could offer a method KTimezone::toStream( QDataStream &stream ); and KTimezone::fromStream( const QDataStream &stream ); which are reimplemented by the subclasses. In operator>>( QDataStream &stream, KDateTime &dateTime ) you would call dateTime->mTimezone->fromStream( stream ); > instead, with the serialisation method constructing a new KTimezone of the appropriate class, > and returning a pointer to it. The problem then would be how operator>>() would be able to > determine which KTimezone sub-class was contained in the QDataStream, given that it doesn't > know what classes may in the future be derived from it. We can use enums for the subclasses. Isn't there a limited number of possible timezones anyway? Ciao, Tobias -- Separate politics from religion and economy! The Councile of the European Union is an undemocratic and illegal institution! ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de