Transport class signals
This commit is contained in:
parent
e678a46286
commit
99aff92566
3 changed files with 45 additions and 11 deletions
|
@ -4,6 +4,22 @@
|
|||
|
||||
using namespace Transport;
|
||||
|
||||
static void onConnected() {
|
||||
std::cout << "Connected to Jabber Server!\n";
|
||||
}
|
||||
|
||||
static void onConnectionError(const Swift::ComponentError&) {
|
||||
std::cout << "Connection Error!\n";
|
||||
}
|
||||
|
||||
static void onXMLIn(const std::string &data) {
|
||||
std::cout << "[XML IN]" << data << "\n";
|
||||
}
|
||||
|
||||
static void onXMLOut(const std::string &data) {
|
||||
std::cout << "[XML OUT]" << data << "\n";
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
Config::Variables config;
|
||||
|
@ -14,4 +30,12 @@ int main(void)
|
|||
|
||||
Swift::SimpleEventLoop eventLoop;
|
||||
Transport::Transport transport(&eventLoop, config);
|
||||
|
||||
transport.onConnected.connect(&onConnected);
|
||||
transport.onConnectionError.connect(bind(&onConnectionError, _1));
|
||||
transport.onXMLIn.connect(bind(&onXMLIn, _1));
|
||||
transport.onXMLOut.connect(bind(&onXMLOut, _1));
|
||||
|
||||
transport.connect();
|
||||
eventLoop.run();
|
||||
}
|
||||
|
|
|
@ -48,9 +48,12 @@ namespace Transport {
|
|||
|
||||
// Connect to server
|
||||
void connect();
|
||||
|
||||
Swift::Component *getComponent() { return m_component; }
|
||||
|
||||
|
||||
boost::signal<void (const Swift::ComponentError&)> onConnectionError;
|
||||
boost::signal<void ()> onConnected;
|
||||
boost::signal<void (const std::string &)> onXMLOut;
|
||||
boost::signal<void (const std::string &)> onXMLIn;
|
||||
|
||||
private:
|
||||
void handleConnected();
|
||||
void handleConnectionError(const Swift::ComponentError &error);
|
||||
|
@ -59,9 +62,9 @@ namespace Transport {
|
|||
// void handlePresence(Swift::Presence::ref presence);
|
||||
// void handleSubscription(Swift::Presence::ref presence);
|
||||
// void handleProbePresence(Swift::Presence::ref presence);
|
||||
// void handleDataRead(const Swift::String &data);
|
||||
// void handleDataWritten(const Swift::String &data);
|
||||
//
|
||||
void handleDataRead(const Swift::String &data);
|
||||
void handleDataWritten(const Swift::String &data);
|
||||
|
||||
// void handleDiscoInfoResponse(boost::shared_ptr<Swift::DiscoInfo> info, const boost::optional<Swift::ErrorPayload>& error, const Swift::JID& jid);
|
||||
// void handleCapsChanged(const Swift::JID& jid);
|
||||
|
||||
|
|
|
@ -46,8 +46,8 @@ Transport::Transport(Swift::EventLoop *loop, Config::Variables &config) {
|
|||
m_component->setSoftwareVersion("", "");
|
||||
m_component->onConnected.connect(bind(&Transport::handleConnected, this));
|
||||
m_component->onError.connect(bind(&Transport::handleConnectionError, this, _1));
|
||||
// m_component->onDataRead.connect(bind(&Transport::handleDataRead, this, _1));
|
||||
// m_component->onDataWritten.connect(bind(&Transport::handleDataWritten, this, _1));
|
||||
m_component->onDataRead.connect(bind(&Transport::handleDataRead, this, _1));
|
||||
m_component->onDataWritten.connect(bind(&Transport::handleDataWritten, this, _1));
|
||||
// m_component->onPresenceReceived.connect(bind(&Transport::handlePresenceReceived, this, _1));
|
||||
// m_component->onMessageReceived.connect(bind(&Transport::handleMessageReceived, this, _1));
|
||||
|
||||
|
@ -84,17 +84,24 @@ void Transport::connect() {
|
|||
}
|
||||
|
||||
void Transport::handleConnected() {
|
||||
std::cout <<"Transport" << " CONNECTED!\n";
|
||||
onConnected();
|
||||
m_reconnectCount = 0;
|
||||
}
|
||||
|
||||
void Transport::handleConnectionError(const ComponentError &error) {
|
||||
std::cout << "Transport" << " Disconnected from Jabber server!\n";
|
||||
|
||||
onConnectionError(error);
|
||||
// if (m_reconnectCount == 2)
|
||||
// Transport::instance()->userManager()->removeAllUsers();
|
||||
|
||||
m_reconnectTimer->start();
|
||||
}
|
||||
|
||||
void Transport::handleDataRead(const String &data) {
|
||||
onXMLIn(data.getUTF8String());
|
||||
}
|
||||
|
||||
void Transport::handleDataWritten(const String &data) {
|
||||
onXMLOut(data.getUTF8String());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue