ANNA Suite  2020b
Multipurpose development suite for Telco applications
DatagramSocket.hpp
Go to the documentation of this file.
1 // ANNA - Anna is Not Nothingness Anymore //
2 // //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
4 // //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7 
8 
9 #ifndef anna_comm_DatagramSocket_hpp
10 #define anna_comm_DatagramSocket_hpp
11 
13 
14 namespace anna {
15 
16 namespace comm {
17 
21 class DatagramSocket : public ClientSocket {
22 public:
26  enum Mode { ReadOnly, WriteOnly };
27 
42  DatagramSocket(const Mode mode, const INetAddress& address, TransportFactory* transportFactory = NULL);
43 
48  Mode getMode() const { return a_mode; }
49 
54  const bool isReadOnly() const { return a_mode == ReadOnly; }
55 
60  const bool isWriteOnly() const { return a_mode == WriteOnly; }
61 
65  void connect() noexcept(false);
66 
67 private:
68  const Mode a_mode;
69 
70  void do_write(const DataBlock&) noexcept(false);
71  int do_read(const char* data, const int maxSize) noexcept(false);
72 };
73 
74 }
75 }
76 
77 
78 #endif
79 
80 
81 
Definition: INetAddress.hpp:34
const bool isWriteOnly() const
Definition: DatagramSocket.hpp:60
Mode
Definition: DatagramSocket.hpp:26
const bool isReadOnly() const
Definition: DatagramSocket.hpp:54
Definition: ClientSocket.hpp:38
void connect() noexcept(false)
DatagramSocket(const Mode mode, const INetAddress &address, TransportFactory *transportFactory=NULL)
Definition: DatagramSocket.hpp:26
Definition: DatagramSocket.hpp:26
Definition: DatagramSocket.hpp:21
Definition: app.hpp:12
Definition: TransportFactory.hpp:30
Definition: DataBlock.hpp:24
Mode getMode() const
Definition: DatagramSocket.hpp:48