From 8325c242bbc39df39b5b2260d3e2aac289d8a930 Mon Sep 17 00:00:00 2001 From: Bob Jamison Date: Mon, 15 May 2006 15:06:21 +0000 Subject: Move from the jabber_whiteboard directory to its own, so that it can be updated in parallel. (bzr r846) --- src/pedro/work/filerec.cpp | 129 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 src/pedro/work/filerec.cpp (limited to 'src/pedro/work/filerec.cpp') diff --git a/src/pedro/work/filerec.cpp b/src/pedro/work/filerec.cpp new file mode 100644 index 000000000..9fc8b8647 --- /dev/null +++ b/src/pedro/work/filerec.cpp @@ -0,0 +1,129 @@ + + +#include + +#include "pedroxmpp.h" + +//######################################################################## +//# T E S T +//######################################################################## + + +class TestListener : public Pedro::XmppEventListener +{ +public: + TestListener() + { + incoming = false; + } + + virtual ~TestListener(){} + + virtual void processXmppEvent(const Pedro::XmppEvent &evt) + { + int typ = evt.getType(); + switch (typ) + { + case Pedro::XmppEvent::EVENT_STATUS: + { + printf("STATUS: %s\n", evt.getData().c_str()); + break; + } + case Pedro::XmppEvent::EVENT_ERROR: + { + printf("ERROR: %s\n", evt.getData().c_str()); + break; + } + case Pedro::XmppEvent::EVENT_CONNECTED: + { + printf("CONNECTED\n"); + break; + } + case Pedro::XmppEvent::EVENT_DISCONNECTED: + { + printf("DISCONNECTED\n"); + break; + } + case Pedro::XmppEvent::EVENT_MUC_PRESENCE: + { + printf("MUC PRESENCE\n"); + printf("group : %s\n", evt.getGroup().c_str()); + printf("from : %s\n", evt.getFrom().c_str()); + printf("presence: %d\n", evt.getPresence()); + break; + } + case Pedro::XmppEvent::EVENT_FILE_RECEIVE: + { + printf("FILE RECEIVE\n"); + from = evt.getFrom(); + streamId = evt.getStreamId(); + iqId = evt.getIqId(); + fileName = evt.getFileName(); + fileHash = evt.getFileHash(); + fileSize = evt.getFileSize(); + incoming = true; + break; + } + + } + } + + Pedro::DOMString from; + Pedro::DOMString streamId; + Pedro::DOMString iqId; + Pedro::DOMString fileName; + Pedro::DOMString fileHash; + long fileSize; + bool incoming; +}; + + +bool doTest() +{ + printf("############ RECEIVING FILE\n"); + + Pedro::XmppClient client; + TestListener listener; + client.addXmppEventListener(listener); + + //Host, port, user, pass, resource + if (!client.connect("jabber.org.uk", 443, "ishmal", "PASSWORD", "filerec")) + { + printf("Connect failed\n"); + return false; + } + + while (true) + { + printf("####Waiting for file\n"); + if (listener.incoming) + break; + client.pause(2000); + } + + printf("#####GOT A FILE\n"); + + if (!client.fileReceive(listener.from, + listener.iqId, + listener.streamId, + listener.fileName, + "text.sav", + listener.fileHash)) + { + return false; + } + + client.pause(1000000); + + client.disconnect(); + + return true; +} + +int main(int argc, char **argv) +{ + if (!doTest()) + return 1; + return 0; +} + -- cgit v1.2.3