diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-19 15:58:27 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-07-19 15:58:27 (GMT) |
commit | bfa7d3d26faaa2db2580d6d7a9388beb71a53c7b (patch) | |
tree | 648c0c51aca6e46b938910c39d8f820c8049a45d /Swiften/Session | |
parent | 74e666956ab3b0150ae63885cdf56efae6ca05b3 (diff) | |
download | swift-contrib-bfa7d3d26faaa2db2580d6d7a9388beb71a53c7b.zip swift-contrib-bfa7d3d26faaa2db2580d6d7a9388beb71a53c7b.tar.bz2 |
Add session tracing.
Diffstat (limited to 'Swiften/Session')
-rw-r--r-- | Swiften/Session/SessionTracer.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Swiften/Session/SessionTracer.h b/Swiften/Session/SessionTracer.h new file mode 100644 index 0000000..29a07e0 --- /dev/null +++ b/Swiften/Session/SessionTracer.h @@ -0,0 +1,29 @@ +#pragma once + +#include <iostream> + +#include "Swiften/Session/Session.h" +#include "Swiften/Base/String.h" +#include "Swiften/Base/ByteArray.h" + +namespace Swift { + class SessionTracer { + public: + SessionTracer(boost::shared_ptr<Session> session) : session(session) { + session->onDataRead.connect(boost::bind(&SessionTracer::printData, this, '<', _1)); + session->onDataWritten.connect(boost::bind(&SessionTracer::printData, this, '>', _1)); + } + + private: + void printData(char direction, const ByteArray& data) { + std::cerr << direction << direction << " " << session->getLocalJID() << " "; + for (unsigned int i = 0; i < 72 - session->getLocalJID().toString().getLength() - session->getRemoteJID().toString().getLength(); ++i) { + std::cerr << direction; + } + std::cerr << " " << session->getRemoteJID()<< " " << direction << direction << std::endl; + std::cerr << String(data.getData(), data.getSize()) << std::endl; + } + + boost::shared_ptr<Session> session; + }; +} |