summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-07-18 21:06:17 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-07-18 21:48:54 (GMT)
commit5d504472c63b7acaa7df99ff1097024cf463f1bd (patch)
tree999b651588f38ee09325dcda65b6e6396247de2f /Swiften/LinkLocal/OutgoingLinkLocalSession.h
parent4457bc810a326de8d7895b3f2ff36ade5f1ae1a0 (diff)
downloadswift-5d504472c63b7acaa7df99ff1097024cf463f1bd.zip
swift-5d504472c63b7acaa7df99ff1097024cf463f1bd.tar.bz2
Implement outgoing linklocal sessions.
Diffstat (limited to 'Swiften/LinkLocal/OutgoingLinkLocalSession.h')
-rw-r--r--Swiften/LinkLocal/OutgoingLinkLocalSession.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/Swiften/LinkLocal/OutgoingLinkLocalSession.h b/Swiften/LinkLocal/OutgoingLinkLocalSession.h
index ae1e86b..abbec80 100644
--- a/Swiften/LinkLocal/OutgoingLinkLocalSession.h
+++ b/Swiften/LinkLocal/OutgoingLinkLocalSession.h
@@ -3,6 +3,7 @@
#include <boost/shared_ptr.hpp>
#include <boost/signal.hpp>
#include <boost/enable_shared_from_this.hpp>
+#include <vector>
#include "Swiften/LinkLocal/LinkLocalSession.h"
#include "Swiften/JID/JID.h"
@@ -16,12 +17,13 @@ namespace Swift {
class PayloadSerializerCollection;
class DNSSDService;
- class OutgoingLinkLocalSession : public LinkLocalSession, public boost::enable_shared_from_this<OutgoingLinkLocalSession> {
+ class OutgoingLinkLocalSession : public LinkLocalSession {
public:
OutgoingLinkLocalSession(
const JID& localJID,
const JID& remoteJID,
const String& hostname,
+ int port,
boost::shared_ptr<DNSSDService> resolver,
PayloadParserFactoryCollection* payloadParserFactories,
PayloadSerializerCollection* payloadSerializers,
@@ -33,16 +35,21 @@ namespace Swift {
void start();
+ void sendStanza(boost::shared_ptr<Stanza> stanza);
+
private:
void handleElement(boost::shared_ptr<Element>);
void handleStreamStart(const ProtocolHeader&);
- //void handleHostnameResolved(const String& hostname, const HostAddress& address);
+ void handleHostnameResolved(const String& hostname, const boost::optional<HostAddress>& address);
+ void handleConnected();
private:
bool resolving_;
JID remoteJID_;
String hostname_;
+ int port_;
boost::shared_ptr<DNSSDService> resolver_;
+ std::vector<boost::shared_ptr<Stanza> > queuedStanzas_;
ConnectionFactory* connectionFactory_;
};
}