annotate 3rdparty/vmime/examples/example6_tracer.hpp @ 0:a4671277546c tip

created the repository for the thymian project
author ferencd
date Tue, 17 Aug 2021 11:19:54 +0200
parents
children
rev   line source
ferencd@0 1
ferencd@0 2 /** Tracer used to demonstrate logging communication between client and server.
ferencd@0 3 */
ferencd@0 4
ferencd@0 5 class myTracer : public vmime::net::tracer
ferencd@0 6 {
ferencd@0 7 public:
ferencd@0 8
ferencd@0 9 myTracer(vmime::shared_ptr <std::ostringstream> stream,
ferencd@0 10 vmime::shared_ptr <vmime::net::service> serv, const int connectionId)
ferencd@0 11 : m_stream(stream), m_service(serv), m_connectionId(connectionId)
ferencd@0 12 {
ferencd@0 13 }
ferencd@0 14
ferencd@0 15 void traceSend(const vmime::string& line)
ferencd@0 16 {
ferencd@0 17 *m_stream << "[" << m_service->getProtocolName() << ":" << m_connectionId
ferencd@0 18 << "] C: " << line << std::endl;
ferencd@0 19 }
ferencd@0 20
ferencd@0 21 void traceReceive(const vmime::string& line)
ferencd@0 22 {
ferencd@0 23 *m_stream << "[" << m_service->getProtocolName() << ":" << m_connectionId
ferencd@0 24 << "] S: " << line << std::endl;
ferencd@0 25 }
ferencd@0 26
ferencd@0 27 private:
ferencd@0 28
ferencd@0 29 vmime::shared_ptr <std::ostringstream> m_stream;
ferencd@0 30 vmime::shared_ptr <vmime::net::service> m_service;
ferencd@0 31 const int m_connectionId;
ferencd@0 32 };
ferencd@0 33
ferencd@0 34 class myTracerFactory : public vmime::net::tracerFactory
ferencd@0 35 {
ferencd@0 36 public:
ferencd@0 37
ferencd@0 38 myTracerFactory(vmime::shared_ptr <std::ostringstream> stream)
ferencd@0 39 : m_stream(stream)
ferencd@0 40 {
ferencd@0 41 }
ferencd@0 42
ferencd@0 43 vmime::shared_ptr <vmime::net::tracer> create
ferencd@0 44 (vmime::shared_ptr <vmime::net::service> serv, const int connectionId)
ferencd@0 45 {
ferencd@0 46 return vmime::make_shared <myTracer>(m_stream, serv, connectionId);
ferencd@0 47 }
ferencd@0 48
ferencd@0 49 private:
ferencd@0 50
ferencd@0 51 vmime::shared_ptr <std::ostringstream> m_stream;
ferencd@0 52 };
ferencd@0 53