diff options
| author | Adam <Adam@anope.org> | 2014-11-24 14:27:23 -0500 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2014-11-24 14:27:23 -0500 |
| commit | 42238034490fb5479d787bd1695750387d508200 (patch) | |
| tree | c93c62e0e1c936e656ae5b9ee1b62380ce2a194c /include/modules/cs_entrymsg.h | |
| parent | d492923610d9c9146b2a2b63de38deab2cfd4ca7 (diff) | |
Rewrite serializable to have field level granularity
Represent serializable objects in a digraph, and as a result made most
object relationships implicitly defined, and use the graph to trace
references between objects to determine relationships. Edges may
also be marked as having a dependency of the object they point to,
which allows for automatic cleanup and deletion of most objects when
no longer needed.
Additionally, this allows not having to require in-memory copies of
everything when using external databases. db_sql has been rewritten
for this and now always requires a database to function. db_sql with
MySQL now requires InnoDB to make use of transactions and foreign
key constraints.
Diffstat (limited to 'include/modules/cs_entrymsg.h')
| -rw-r--r-- | include/modules/cs_entrymsg.h | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/include/modules/cs_entrymsg.h b/include/modules/cs_entrymsg.h index 1fd072db5..b5804068f 100644 --- a/include/modules/cs_entrymsg.h +++ b/include/modules/cs_entrymsg.h @@ -6,30 +6,24 @@ * */ -struct EntryMsg -{ - Anope::string chan; - Anope::string creator; - Anope::string message; - time_t when; - - virtual ~EntryMsg() { } - protected: - EntryMsg() { } -}; - -struct EntryMessageList : Serialize::Checker<std::vector<EntryMsg *> > +class EntryMsg : public Serialize::Object { protected: - EntryMessageList() : Serialize::Checker<std::vector<EntryMsg *> >("EntryMsg") { } + using Serialize::Object::Object; public: - virtual ~EntryMessageList() - { - for (unsigned i = (*this)->size(); i > 0; --i) - delete (*this)->at(i - 1); - } + virtual ChanServ::Channel *GetChannel() anope_abstract; + virtual void SetChannel(ChanServ::Channel *) anope_abstract; + + virtual Anope::string GetCreator() anope_abstract; + virtual void SetCreator(const Anope::string &) anope_abstract; - virtual EntryMsg* Create() anope_abstract; + virtual Anope::string GetMessage() anope_abstract; + virtual void SetMessage(const Anope::string &) anope_abstract; + + virtual time_t GetWhen() anope_abstract; + virtual void SetWhen(const time_t &) anope_abstract; }; +static Serialize::TypeReference<EntryMsg> entrymsg("EntryMsg"); + |
