Code

improve streaming
[inkscape.git] / src / pedro / pedroxmpp.h
index d26b83b765dc77babd677c8b75fcff27fcdf6081..34b6d039067a2faf76c8584dc4584782c55ee770 100644 (file)
@@ -6,7 +6,7 @@
  * Authors:
  *   Bob Jamison
  *
- * Copyright (C) 2005 Bob Jamison
+ * Copyright (C) 2005-2006 Bob Jamison
  *
  *  This library is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU Lesser General Public
@@ -25,6 +25,7 @@
 
 #include <stdio.h>
 #include <vector>
+#include <map>
 
 #include <string>
 
@@ -132,6 +133,13 @@ public:
      */
     static const int EVENT_DISCONNECTED         = 11;
 
+    /**
+     *  Client has begun speaking to the server in SSL.  This is usually
+     *  emitted just before EVENT_CONNECTED,  since authorization has not
+     *  yet taken place.
+     */
+    static const int EVENT_SSL_STARTED          = 12;
+
     /**
      *  Client has successfully registered a new account on a server.
      *  The server is in getFrom(), the user in getTo()
@@ -799,12 +807,20 @@ public:
     virtual void setResource(const DOMString &val)
         { resource = val; }
 
+    /**
+     *
+     */
+    virtual void setJid(const DOMString &val)
+        { jid = val; }
+
     /**
      *
      */
     virtual DOMString getJid()
         { return jid; }
 
+
+
     /**
      *
      */
@@ -959,7 +975,7 @@ public:
      *
      */
     virtual std::vector<XmppUser>
-          XmppClient::groupChatGetUserList(const DOMString &groupJid);
+             groupChatGetUserList(const DOMString &groupJid);
 
     /**
      *
@@ -1012,46 +1028,31 @@ public:
     /**
      *
      */
-    virtual int outputStreamOpen(const DOMString &jid,
+    virtual bool outputStreamOpen(const DOMString &jid,
                                  const DOMString &streamId);
 
     /**
      *
      */
-    virtual int outputStreamWrite(int streamId,
-                          const unsigned char *buf, unsigned long len);
+    virtual bool outputStreamWrite(const DOMString &streamId,
+               const std::vector<unsigned char> &buf);
 
     /**
      *
      */
-    virtual int outputStreamClose(int streamId);
+    virtual bool outputStreamClose(const DOMString &streamId);
 
     /**
      *
      */
-    virtual int inputStreamOpen(const DOMString &jid,
+    virtual bool inputStreamOpen(const DOMString &jid,
                                 const DOMString &streamId,
                                 const DOMString &iqId);
 
     /**
      *
      */
-    virtual int inputStreamAvailable(int streamId);
-
-    /**
-     *
-     */
-    virtual std::vector<unsigned char> inputStreamRead(int streamId);
-
-    /**
-     *
-     */
-    virtual bool inputStreamClosing(int streamId);
-
-    /**
-     *
-     */
-    virtual int inputStreamClose(int streamId);
+    virtual bool inputStreamClose(const DOMString &streamId);
 
 
     //#######################
@@ -1151,19 +1152,27 @@ private:
 
     std::vector<XmppGroupChat *>groupChats;
 
-    static const int outputStreamCount = 16;
+    //#### Roster
+    std::vector<XmppUser>roster;
+
 
-    XmppStream *outputStreams[outputStreamCount];
+    //#### Streams
+    
+    bool processInBandByteStreamMessage(Element *root);
+    
+    DOMString streamPacket;
 
-    static const int inputStreamCount = 16;
+    std::map<DOMString, XmppStream *> outputStreams;
 
-    XmppStream *inputStreams[inputStreamCount];
+    std::map<DOMString, XmppStream *> inputStreams;
 
-    static const int fileSendCount = 16;
 
-    XmppStream *fileSends[fileSendCount];
+    //#### File send
+    
+    bool processFileMessage(Element *root);
+
+    std::map<DOMString, XmppStream *> fileSends;
 
-    std::vector<XmppUser>roster;
 };