summaryrefslogtreecommitdiff
path: root/include/modules/cs_entrymsg.h
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-11-24 14:27:23 -0500
committerAdam <Adam@anope.org>2014-11-24 14:27:23 -0500
commit42238034490fb5479d787bd1695750387d508200 (patch)
treec93c62e0e1c936e656ae5b9ee1b62380ce2a194c /include/modules/cs_entrymsg.h
parentd492923610d9c9146b2a2b63de38deab2cfd4ca7 (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.h34
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");
+