Code

start switching sp_repr_new* over to XML::Document::create*, and rename create method...
[inkscape.git] / src / jabber_whiteboard / message-queue.cpp
1 /**
2  * Whiteboard message queue 
3  * 
4  * Authors:
5  * David Yip <yipdw@rose-hulman.edu>
6  *
7  * Copyright (c) 2005 Authors
8  *
9  * Released under GNU GPL, read the file 'COPYING' for more information
10  */
12 #include <glibmm/i18n.h>
14 #include "desktop-handles.h"
15 #include "message-stack.h"
17 #include "jabber_whiteboard/session-manager.h"
18 #include "jabber_whiteboard/message-node.h"
19 #include "jabber_whiteboard/message-queue.h"
21 namespace Inkscape {
23 namespace Whiteboard {
25 //###################################
26 //# MESSAGE QUEUE
27 //###################################
29 MessageNode*
30 MessageQueue::first()
31 {
32     return _queue.front();
33 }
35 void
36 MessageQueue::popFront()
37 {
38      _queue.pop_front();
39     //g_log(NULL, G_LOG_LEVEL_DEBUG,
40     // "Removed element, queue size (for %s): %u", 
41     //lm_connection_get_jid(this->_sm->session_data->connection), this->_queue.size());
42 }
44 unsigned int
45 MessageQueue::size()
46 {
47     return _queue.size();
48 }
50 bool
51 MessageQueue::empty()
52 {
53     return _queue.empty();
54 }
56 void
57 MessageQueue::clear()
58 {
59     _queue.clear();
60 }
64 //###################################
65 //# RECEIVE MESSAGE QUEUE
66 //###################################
67 void
68 ReceiveMessageQueue::insert(MessageNode* msg)
69 {
70     // Check to see if the incoming message has a sequence number
71     // lower than the sequence number of the latest message processed
72     // by this message's sender.  If it does, drop the message and produce
73     // a warning.
74     if (msg->sequence() < _latest) {
75         g_warning("Received late message (message sequence number is %u, but latest processed message had sequence number %u).  Discarding message; session may be desynchronized.", msg->sequence(), this->_latest);
76         return;
77     }
79     // Otherwise, it is safe to insert this message.
80     //Inkscape::GC::anchor(msg);
81     _queue.push_back(msg);
82         /*
83     SP_DT_MSGSTACK(_sm->getDesktop())->flashF(
84               Inkscape::NORMAL_MESSAGE, 
85               _("%u changes queued in receive queue."),
86               _queue.size());
87         */
88     //g_log(NULL, G_LOG_LEVEL_DEBUG, "Receive queue size (for %s): %u",
89     // lm_connection_get_jid(this->_sm->session_data->connection), this->_queue.size());
90 }
92 void
93 ReceiveMessageQueue::insertDeferred(MessageNode* msg)
94 {
95     _deferred.push_back(msg);
96 }
98 void
99 ReceiveMessageQueue::setLatestProcessedPacket(unsigned int seq)
101      _latest = seq;
105 //###################################
106 //# SEND MESSAGE QUEUE
107 //###################################
108 void
109 SendMessageQueue::insert(MessageNode* msg)
111     //Inkscape::GC::anchor(msg);
112     _queue.push_back(msg);
113         /*
114     SP_DT_MSGSTACK(_sm->getDesktop())->flashF(
115             Inkscape::NORMAL_MESSAGE, 
116             _("%u changes queued in send queue."),
117             _queue.size());
118         */
119     //g_log(NULL, G_LOG_LEVEL_DEBUG, "Send queue size (for %s): %u",
120     //  lm_connection_get_jid(this->_sm->session_data->connection),
121     //this->_queue.size());
124 }  // namespace Whiteboard
126 }  // namespace Inkscape
129 /*
130   Local Variables:
131   mode:c++
132   c-file-style:"stroustrup"
133   c-file-offsets:((innamespace . 0)(inline-open . 0))
134   indent-tabs-mode:nil
135   fill-column:99
136   End:
137 */
138 // vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :