summaryrefslogtreecommitdiffstats
path: root/src/jabber_whiteboard/message-contexts.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-01-16 02:36:01 +0000
committermental <mental@users.sourceforge.net>2006-01-16 02:36:01 +0000
commit179fa413b047bede6e32109e2ce82437c5fb8d34 (patch)
treea5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/jabber_whiteboard/message-contexts.cpp
downloadinkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz
inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/jabber_whiteboard/message-contexts.cpp')
-rw-r--r--src/jabber_whiteboard/message-contexts.cpp134
1 files changed, 134 insertions, 0 deletions
diff --git a/src/jabber_whiteboard/message-contexts.cpp b/src/jabber_whiteboard/message-contexts.cpp
new file mode 100644
index 000000000..1b5ea12fd
--- /dev/null
+++ b/src/jabber_whiteboard/message-contexts.cpp
@@ -0,0 +1,134 @@
+/**
+ * Whiteboard session manager
+ * Inkboard message context definitions
+ *
+ * Authors:
+ * David Yip <yipdw@rose-hulman.edu>
+ *
+ * Copyright (c) 2005 Authors
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#include "jabber_whiteboard/defines.h"
+#include "jabber_whiteboard/message-contexts.h"
+
+#include <bitset>
+
+namespace Inkscape {
+
+namespace Whiteboard {
+
+void
+initialize_received_message_contexts(MessageContextMap& mcm)
+{
+
+ // Each Inkboard message has a context of validity according to an Inkboard
+ // client's state. That is, certain messages should be acknowledged and processed
+ // in some states, whereas other messages should not.
+ // For instance, a whiteboard invitation should be acknowledged if an Inkboard
+ // client is not in a whiteboard session, but should be refused if said client
+ // _is_ in a whiteboard session.
+
+ // Only the flags that are required to be set must be set; all flags, by default,
+ // are zero. Explicit definition doesn't hurt, though.
+
+ // The general format of message context creation and registration is
+ // std::bitset< NUM_FLAGS > m_
+ // m_.set( );
+ // m_.set( );
+ // mcm[ ] = m_;
+
+
+ // Begin
+
+ // Special bitsets
+ std::bitset< NUM_FLAGS > all_contexts;
+ all_contexts.flip();
+
+ // Messages: CHANGE_NOT_REPEATABLE, CHANGE_REPEATABLE, DUMMY_CHANGE, CHANGE_COMMIT
+ std::bitset< NUM_FLAGS > m1;
+ m1.set(LOGGED_IN);
+ m1.set(IN_WHITEBOARD);
+ m1.set(IN_CHATROOM);
+ m1.set(SYNCHRONIZING_WITH_CHAT);
+ mcm[CHANGE_NOT_REPEATABLE] = m1;
+ mcm[CHANGE_REPEATABLE] = m1;
+ mcm[DUMMY_CHANGE] = m1;
+ mcm[CHANGE_COMMIT] = m1;
+
+ // Messages: DOCUMENT_BEGIN, DOCUMENT_END
+ std::bitset< NUM_FLAGS > m4;
+ m4.set(LOGGED_IN);
+ m4.set(IN_WHITEBOARD);
+ m4.set(SYNCHRONIZING_WITH_CHAT);
+ mcm[DOCUMENT_BEGIN] = m4;
+ mcm[DOCUMENT_END] = m4;
+
+ // Message: CONNECT_REQUEST_USER
+ std::bitset< NUM_FLAGS > m5;
+ m5.set(LOGGED_IN);
+ mcm[CONNECT_REQUEST_USER] = m5;
+
+ // Message: CONNECT_REQUEST_RESPONSE_USER
+ std::bitset< NUM_FLAGS > m6;
+ m6.set(LOGGED_IN);
+ m6.set(WAITING_FOR_INVITE_RESPONSE);
+ mcm[CONNECT_REQUEST_RESPONSE_USER] = m6;
+
+ // Message: CHATROOM_SYNCHRONIZE_REQUEST
+ std::bitset< NUM_FLAGS > m7;
+ m7.set(LOGGED_IN);
+ m7.set(IN_CHATROOM);
+ m7.set(IN_WHITEBOARD);
+ mcm[CHATROOM_SYNCHRONIZE_REQUEST] = m7;
+
+ // Message: CHATROOM_SYNCHRONIZE_RESPONSE
+ std::bitset< NUM_FLAGS > m8;
+ m8.set(LOGGED_IN);
+ m8.set(WAITING_TO_SYNC_TO_CHAT);
+ mcm[CHATROOM_SYNCHRONIZE_RESPONSE] = m8;
+
+ // Message: CONNECT_REQUEST_RESPONSE_CHAT
+ std::bitset< NUM_FLAGS > m9;
+ m9.set(LOGGED_IN);
+ m9.set(IN_CHATROOM);
+ m9.set(IN_WHITEBOARD);
+ mcm[CONNECT_REQUEST_RESPONSE_CHAT] = m9;
+
+ // Message: CONNECTED_SIGNAL
+ mcm[CONNECTED_SIGNAL] = all_contexts;
+
+ // Message: DISCONNECTED_FROM_USER_SIGNAL
+ std::bitset< NUM_FLAGS > m11;
+ m11.set(LOGGED_IN);
+ m11.set(IN_WHITEBOARD);
+ mcm[DISCONNECTED_FROM_USER_SIGNAL] = m11;
+
+ // Messages: CONNECT_REQUEST_REFUSED_BY_PEER, ALREADY_IN_SESSION
+ std::bitset< NUM_FLAGS > m12;
+ m12.set(LOGGED_IN);
+ m12.set(WAITING_FOR_INVITE_RESPONSE);
+ mcm[CONNECT_REQUEST_REFUSED_BY_PEER] = m12;
+ mcm[ALREADY_IN_SESSION] = m12;
+
+ // Message: UNSUPPORTED_PROTOCOL_VERSION
+ std::bitset< NUM_FLAGS > m14;
+ m14.set(LOGGED_IN);
+ mcm[UNSUPPORTED_PROTOCOL_VERSION] = m14;
+}
+
+}
+
+}
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :