Public Member Functions | Static Public Member Functions | Data Fields | Protected Member Functions | Private Attributes | Static Private Attributes

Serializable Class Reference

#include <serialize.h>

Inherits Base.

Inherited by AJoinEntry, AutoKick, BadWord, BotInfo, ChanAccess, ChannelInfo, CSMiscData [private], DNSServer, DNSZone, EntryMsg, Exception, ForbidData, HostRequest [private], IgnoreData, LogSetting, Memo, ModeLock, MyOper [private], NewsItem, NickAlias, NickCore, NSMiscData [private], SeenInfo, Stats, and XLine.

Collaboration diagram for Serializable:
Collaboration graph
[legend]

Public Member Functions

virtual ~Serializable ()
void QueueUpdate ()
bool IsCached (Serialize::Data &)
void UpdateCache (Serialize::Data &)
bool IsTSCached ()
void UpdateTS ()
Serialize::Type * GetSerializableType () const
virtual void Serialize (Serialize::Data &data) const =0

Static Public Member Functions

static const std::list
< Serializable * > & 
GetItems ()

Data Fields

unsigned int id

Protected Member Functions

 Serializable (const Anope::string &serialize_type)
 Serializable (const Serializable &)
Serializableoperator= (const Serializable &)

Private Attributes

Serialize::Type * s_type
std::list< Serializable * >
::iterator 
s_iter
size_t last_commit
time_t last_commit_time

Static Private Attributes

static std::list< Serializable * > * SerializableItems

Detailed Description

A serialziable object. Serializable objects can be serialized into abstract data types (Serialize::Data), and then reconstructed or updated later at any time.

Definition at line 54 of file serialize.h.


Constructor & Destructor Documentation

Serializable::Serializable ( const Anope::string serialize_type  )  [protected]

Definition at line 47 of file serialize.cpp.

References FOREACH_MOD, I_OnSerializableConstruct, s_iter, s_type, and SerializableItems.

Serializable::Serializable ( const Serializable other  )  [protected]

Definition at line 61 of file serialize.cpp.

References FOREACH_MOD, I_OnSerializableConstruct, s_iter, s_type, and SerializableItems.

Serializable::~Serializable (  )  [virtual]

Definition at line 72 of file serialize.cpp.

References FOREACH_MOD, I_OnSerializableDestruct, s_iter, and SerializableItems.


Member Function Documentation

const std::list< Serializable * > & Serializable::GetItems (  )  [static]

Definition at line 113 of file serialize.cpp.

References SerializableItems.

Referenced by DBFlatFile::OnSaveDatabase().

Serialize::Type* Serializable::GetSerializableType (  )  const [inline]

Get the type of serializable object this is

Returns:
The serializable object type

Definition at line 98 of file serialize.h.

Referenced by DBMySQL::OnNotify(), DBSQL::OnNotify(), DBFlatFile::OnSaveDatabase(), and QueueUpdate().

bool Serializable::IsCached ( Serialize::Data &  data  ) 

Definition at line 93 of file serialize.cpp.

References last_commit.

Referenced by DBMySQL::OnNotify(), and DBSQL::OnNotify().

bool Serializable::IsTSCached (  ) 

Definition at line 103 of file serialize.cpp.

References Anope::CurTime, and last_commit_time.

Serializable & Serializable::operator= ( const Serializable  )  [protected]

Definition at line 79 of file serialize.cpp.

void Serializable::QueueUpdate (  ) 
virtual void Serializable::Serialize ( Serialize::Data &  data  )  const [pure virtual]
void Serializable::UpdateCache ( Serialize::Data &  data  ) 

Definition at line 98 of file serialize.cpp.

References last_commit.

Referenced by DBMySQL::OnNotify(), and DBSQL::OnNotify().

void Serializable::UpdateTS (  ) 

Definition at line 108 of file serialize.cpp.

References Anope::CurTime, and last_commit_time.


Field Documentation

unsigned int Serializable::id

Reimplemented in XLine.

Definition at line 83 of file serialize.h.

Referenced by DBFlatFile::OnLoadDatabase(), DBMySQL::OnNotify(), DBSQL::OnNotify(), and DBFlatFile::OnSaveDatabase().

size_t Serializable::last_commit [private]

Definition at line 69 of file serialize.h.

Referenced by IsCached(), and UpdateCache().

Definition at line 71 of file serialize.h.

Referenced by IsTSCached(), and UpdateTS().

std::list<Serializable *>::iterator Serializable::s_iter [private]

Definition at line 67 of file serialize.h.

Referenced by Serializable(), and ~Serializable().

Serialize::Type* Serializable::s_type [private]

Definition at line 64 of file serialize.h.

Referenced by Serializable().

std::list< Serializable * > * Serializable::SerializableItems [static, private]

Definition at line 62 of file serialize.h.

Referenced by GetItems(), Serializable(), and ~Serializable().


The documentation for this class was generated from the following files: