[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: Proposed new KDateTime class
From:       Tobias Koenig <tokoe () kde ! org>
Date:       2005-11-16 0:41:20
Message-ID: 20051116004120.GD2240 () ghostdog ! localnet
[Download RAW message or body]

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic