diff options
| author | daleharvey <daleharvey@users.sourceforge.net> | 2006-08-03 17:52:16 +0000 |
|---|---|---|
| committer | daleharvey <daleharvey@users.sourceforge.net> | 2006-08-03 17:52:16 +0000 |
| commit | 0dfff4e976ae767895cc94cbf4a1943d5a20516e (patch) | |
| tree | 71b1e21f5aa4023d057295fb446f9e0f46d31feb /src/jabber_whiteboard/inkboard-document.cpp | |
| parent | fix 1533388 (diff) | |
| download | inkscape-0dfff4e976ae767895cc94cbf4a1943d5a20516e.tar.gz inkscape-0dfff4e976ae767895cc94cbf4a1943d5a20516e.zip | |
work on jabber_whiteboard
(bzr r1550)
Diffstat (limited to 'src/jabber_whiteboard/inkboard-document.cpp')
| -rw-r--r-- | src/jabber_whiteboard/inkboard-document.cpp | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/src/jabber_whiteboard/inkboard-document.cpp b/src/jabber_whiteboard/inkboard-document.cpp index 514b3acc4..c46546ebc 100644 --- a/src/jabber_whiteboard/inkboard-document.cpp +++ b/src/jabber_whiteboard/inkboard-document.cpp @@ -75,14 +75,29 @@ InkboardDocument::terminateSession() } void -InkboardDocument::processInkboardEvent(Message::Wrapper mtype, Glib::ustring const& data) +InkboardDocument::processInkboardEvent(Message::Wrapper &wrapper, Pedro::Element* data) { - g_log(NULL, G_LOG_LEVEL_DEBUG, "Processing Inkboard event: mtype=%s data=%s\n",mtype,data.c_str()); - + if(this->handleIncomingState(wrapper,data)) + { + if(wrapper == Message::PROTOCOL) + { + if(data->exists(Message::ACCEPT_INVITATION)); + { + // TODO : Would be nice to create the desktop here + + sendProtocol(getRecipient(),Message::PROTOCOL, Message::CONNECTED); + sendProtocol(getRecipient(),Message::PROTOCOL, Message::DOCUMENT_BEGIN); + sendProtocol(getRecipient(),Message::PROTOCOL, Message::DOCUMENT_END); + } + } + }else{ + g_warning("Recieved Message in invalid state = %d", this->state); + data->print(); + } } bool -InkboardDocument::sendProtocol(const Glib::ustring &destJid, Message::Wrapper wrapper, +InkboardDocument::sendProtocol(const Glib::ustring &destJid, Message::Wrapper &wrapper, Message::Message message) { if(this->handleOutgoingState(wrapper,message)) @@ -99,19 +114,22 @@ InkboardDocument::sendProtocol(const Glib::ustring &destJid, Message::Wrapper wr if (!_sm->getClient().write(fmt, _type,_sm->getClient().getJid().c_str(),destJid.c_str(),Vars::INKBOARD_XMLNS, - this->getSessionId().c_str(),wrapper,message,wrapper)) - return false; + this->getSessionId().c_str(),wrapper,message,wrapper)) + { return false; } - return true; + else + { return true; } - }else - return false; + }else + { + g_warning("Sending Message in invalid state message=%s , state=%d",message,this->state); + return false; + } } bool -InkboardDocument::handleOutgoingState(Message::Wrapper wrapper,Message::Message message) +InkboardDocument::handleOutgoingState(Message::Wrapper &wrapper, Glib::ustring const& message) { - g_warning("state %d, message %s",this->state,message); if(wrapper == Message::PROTOCOL) { if(message == Message::CONNECT_REQUEST) @@ -126,8 +144,9 @@ InkboardDocument::handleOutgoingState(Message::Wrapper wrapper,Message::Message else if(message == Message::DOCUMENT_BEGIN) return this->handleState(State::CONNECTED,State::SYNCHRONISING); - else if(message == Message::DOCUMENT_END) + else if(message == Message::DOCUMENT_END) { return this->handleState(State::SYNCHRONISING,State::IN_WHITEBOARD); + } else return false; @@ -140,10 +159,12 @@ InkboardDocument::handleOutgoingState(Message::Wrapper wrapper,Message::Message } bool -InkboardDocument::handleIncomingState(Message::Wrapper wrapper,Glib::ustring const& message) +InkboardDocument::handleIncomingState(Message::Wrapper &wrapper, Pedro::Element* data) { if(wrapper == Message::PROTOCOL) { + Glib::ustring message = data->getFirstChild()->getFirstChild()->getFirstChild()->getName(); + // Connect Requests are handled in SessionManager if(message == Message::ACCEPT_INVITATION) return this->handleState(State::AWAITING_INVITATION_REPLY,State::INVITATION_RECIEVED); |
