Dangerous SNMP
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
transport.hpp
1 #pragma once
2 
3 #include "dangerous/snmp/context.hpp"
4 
5 #include <chrono>
6 #include <memory>
7 #include <stdexcept>
8 #include <string>
9 #include <vector>
10 
11 namespace dangerous { namespace snmp {
12 
13 class ByteStream;
14 
15 
24 class Transport {
25 protected:
26  Transport( std::weak_ptr<Context::PrivateData> context );
27 
28 public:
29  virtual ~Transport();
30 
31  unsigned int maximumIncomingMessageSize() { return _maximumIncomingMessageSize; }
32  unsigned int maximumOutgoingMessageSize() { return _maximumOutgoingMessageSize; }
33 
38  virtual bool isConnected();
39 
45  virtual void connect();
46 
51  virtual void disconnect();
52 
53  std::shared_ptr<ByteStream> readerStream;
54 
55  std::shared_ptr<ByteStream> writerStream;
56  void commitWrite();
57 
58 protected:
59  unsigned int _maximumIncomingMessageSize;
60  unsigned int _maximumOutgoingMessageSize;
61 
62  std::weak_ptr<Context::PrivateData> context;
63 
64  void registerReadWriteStreams( int readHandle, int writeHandle );
65  void unregisterReadWriteStreams( int readHandle, int writeHandle );
66 };
67 
68 } }
69 
virtual void connect()
This instructs the transport to connect to its endpoint.
The Transport class represents an abstraction of the transport mechanism behind SNMP.
Definition: transport.hpp:24
virtual bool isConnected()
This returns whether or not the transport is connected.
virtual void disconnect()
This shuts down the transport (if it was already connected).