EHS
Loading...
Searching...
No Matches
BaseUDP.h
Go to the documentation of this file.
1#pragma once
2
3#include "ehs/EHS.h"
4#include "ehs/Str.h"
5#include "Socket.h"
6
7namespace ehs
8{
9 class EHS_LIB_IO BaseUDP
10 {
11 protected:
13 bool bound;
14
15 public:
16 virtual ~BaseUDP() = default;
17
19 BaseUDP();
20
23 BaseUDP(IP version);
24
25 BaseUDP(BaseUDP&& udp) noexcept;
26
27 BaseUDP(const BaseUDP& udp);
28
29 BaseUDP& operator=(BaseUDP&& udp) noexcept;
30
31 BaseUDP& operator=(const BaseUDP& udp);
32
34 virtual void Release() = 0;
35
41 virtual void Bind(const Endpoint &endpoint) = 0;
42
47 virtual UInt_64 Send(const Endpoint &endpoint, const Byte *data, UInt_64 size) = 0;
48
56 virtual UInt_64 Receive(Endpoint *endpoint, Byte *data, UInt_64 size) = 0;
57
60 bool IsBound() const;
61
64 virtual void SetBlocking(bool blocking) = 0;
65
68 virtual bool IsBlocking() const = 0;
69
70 virtual void SetIPv6Only(bool value) = 0;
71
72 virtual bool IsIPv6Only() const = 0;
73
75
78 virtual bool IsValid() const = 0;
79 };
80}
Endpoint GetLocalEndpoint() const
Definition BaseUDP.cpp:55
BaseUDP & operator=(BaseUDP &&udp) noexcept
Definition BaseUDP.cpp:26
BaseUDP()
Initializes the socket with the defaults.
Definition BaseUDP.cpp:5
virtual bool IsBlocking() const =0
Endpoint localEndpoint
Definition BaseUDP.h:12
virtual void Release()=0
Explicitly release resources before it falls off the stack.
bool bound
Definition BaseUDP.h:13
virtual void SetIPv6Only(bool value)=0
virtual ~BaseUDP()=default
virtual void Bind(const Endpoint &endpoint)=0
virtual UInt_64 Send(const Endpoint &endpoint, const Byte *data, UInt_64 size)=0
virtual bool IsValid() const =0
virtual UInt_64 Receive(Endpoint *endpoint, Byte *data, UInt_64 size)=0
virtual void SetBlocking(bool blocking)=0
bool IsBound() const
Definition BaseUDP.cpp:50
virtual bool IsIPv6Only() const =0
Definition Anchor.h:6
IP
Definition Socket.h:29
unsigned char Byte
Definition Types.h:39
Definition Socket.h:48