aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/events.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/events.cpp')
-rw-r--r--src/net/events.cpp59
1 files changed, 50 insertions, 9 deletions
diff --git a/src/net/events.cpp b/src/net/events.cpp
index 7dbb4adb..8cc23706 100644
--- a/src/net/events.cpp
+++ b/src/net/events.cpp
@@ -39,9 +39,26 @@ namespace events {
//
+// event
+//
+
+event::event()
+{
+}
+
+
+event::~event()
+{
+}
+
+
+//
// messageCountEvent
//
+const char* messageCountEvent::EVENT_CLASS = "messageCountEvent";
+
+
messageCountEvent::messageCountEvent
(ref <folder> folder, const Types type, const std::vector <int>& nums)
: m_folder(folder), m_type(type)
@@ -56,12 +73,18 @@ messageCountEvent::Types messageCountEvent::getType() const { return (m_type); }
const std::vector <int>& messageCountEvent::getNumbers() const { return (m_nums); }
-void messageCountEvent::dispatch(messageCountListener* listener) const
+void messageCountEvent::dispatch(messageCountListener* listener)
{
if (m_type == TYPE_ADDED)
- listener->messagesAdded(*this);
+ listener->messagesAdded(thisRef().dynamicCast <messageCountEvent>());
else
- listener->messagesRemoved(*this);
+ listener->messagesRemoved(thisRef().dynamicCast <messageCountEvent>());
+}
+
+
+const char* messageCountEvent::getClass() const
+{
+ return EVENT_CLASS;
}
@@ -69,6 +92,9 @@ void messageCountEvent::dispatch(messageCountListener* listener) const
// messageChangedEvent
//
+const char* messageChangedEvent::EVENT_CLASS = "messageChangedEvent";
+
+
messageChangedEvent::messageChangedEvent
(ref <folder> folder, const Types type, const std::vector <int>& nums)
: m_folder(folder), m_type(type)
@@ -83,9 +109,15 @@ messageChangedEvent::Types messageChangedEvent::getType() const { return (m_type
const std::vector <int>& messageChangedEvent::getNumbers() const { return (m_nums); }
-void messageChangedEvent::dispatch(messageChangedListener* listener) const
+void messageChangedEvent::dispatch(messageChangedListener* listener)
+{
+ listener->messageChanged(thisRef().dynamicCast <messageChangedEvent>());
+}
+
+
+const char* messageChangedEvent::getClass() const
{
- listener->messageChanged(*this);
+ return EVENT_CLASS;
}
@@ -93,6 +125,9 @@ void messageChangedEvent::dispatch(messageChangedListener* listener) const
// folderEvent
//
+const char* folderEvent::EVENT_CLASS = "folderEvent";
+
+
folderEvent::folderEvent
(ref <folder> folder, const Types type,
const utility::path& oldPath, const utility::path& newPath)
@@ -105,17 +140,23 @@ ref <folder> folderEvent::getFolder() const { return (m_folder); }
folderEvent::Types folderEvent::getType() const { return (m_type); }
-void folderEvent::dispatch(folderListener* listener) const
+void folderEvent::dispatch(folderListener* listener)
{
switch (m_type)
{
- case TYPE_CREATED: listener->folderCreated(*this); break;
- case TYPE_RENAMED: listener->folderRenamed(*this); break;
- case TYPE_DELETED: listener->folderDeleted(*this); break;
+ case TYPE_CREATED: listener->folderCreated(thisRef().dynamicCast <folderEvent>()); break;
+ case TYPE_RENAMED: listener->folderRenamed(thisRef().dynamicCast <folderEvent>()); break;
+ case TYPE_DELETED: listener->folderDeleted(thisRef().dynamicCast <folderEvent>()); break;
}
}
+const char* folderEvent::getClass() const
+{
+ return EVENT_CLASS;
+}
+
+
} // events
} // net
} // vmime