Mercurial > thymian
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 |
