LeviLamina
Loading...
Searching...
No Matches
AsyncPacketSocket.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/absl/AnyInvocable.h"
7#include "mc/external/sigslot/has_slots.h"
8#include "mc/external/sigslot/single_threaded.h"
9#include "mc/external/webrtc/Socket.h"
10
11// auto generated forward declare list
12// clang-format off
13namespace webrtc { class ReceivedIpPacket; }
14namespace webrtc { class SocketAddress; }
15namespace webrtc { struct AsyncSocketPacketOptions; }
16// clang-format on
17
18namespace webrtc {
19
20class AsyncPacketSocket : public ::sigslot::has_slots<::sigslot::single_threaded> {
21public:
22 // AsyncPacketSocket inner types define
23 enum class State : int {
24 Closed = 0,
25 Binding = 1,
26 Bound = 2,
27 Connecting = 3,
28 Connected = 4,
29 };
30
31public:
32 // member variables
33 // NOLINTBEGIN
41 // NOLINTEND
42
43public:
44 // prevent constructor by default
45 AsyncPacketSocket& operator=(AsyncPacketSocket const&);
46 AsyncPacketSocket(AsyncPacketSocket const&);
47 AsyncPacketSocket();
48
49public:
50 // virtual functions
51 // NOLINTBEGIN
52 virtual ~AsyncPacketSocket() /*override*/;
53
54 virtual ::webrtc::SocketAddress GetLocalAddress() const = 0;
55
56 virtual ::webrtc::SocketAddress GetRemoteAddress() const = 0;
57
58 virtual int Send(void const* pv, uint64 cb, ::webrtc::AsyncSocketPacketOptions const& options) = 0;
59
60 virtual int SendTo(
61 void const* pv,
62 uint64 cb,
63 ::webrtc::SocketAddress const& addr,
65 ) = 0;
66
67 virtual int Close() = 0;
68
69 virtual ::webrtc::AsyncPacketSocket::State GetState() const = 0;
70
71 virtual int GetOption(::webrtc::Socket::Option opt, int* value) = 0;
72
73 virtual int SetOption(::webrtc::Socket::Option opt, int value) = 0;
74
75 virtual int GetError() const = 0;
76
77 virtual void SetError(int error) = 0;
78 // NOLINTEND
79
80public:
81 // member functions
82 // NOLINTBEGIN
83 MCNAPI void DeregisterReceivedPacketCallback(void const* removal_tag);
84
86
88 void const* removal_tag,
90 received_packet_callback
91 );
92
93 MCNAPI void
94 SubscribeCloseEvent(void const* removal_tag, ::std::function<void(::webrtc::AsyncPacketSocket*, int)> callback);
95
96 MCNAPI void UnsubscribeCloseEvent(void const* removal_tag);
97 // NOLINTEND
98
99public:
100 // destructor thunk
101 // NOLINTBEGIN
102 MCNAPI void $dtor();
103 // NOLINTEND
104
105public:
106 // vftables
107 // NOLINTBEGIN
108 MCNAPI static void** $vftable();
109 // NOLINTEND
110};
111
112} // namespace webrtc
Definition AnyInvocable.h:8
Definition has_slots.h:8
Definition AsyncPacketSocket.h:20
static MCAPI void ** $vftable()
MCAPI void UnsubscribeCloseEvent(void const *removal_tag)
MCAPI void DeregisterReceivedPacketCallback(void const *removal_tag)
MCAPI void RegisterReceivedPacketCallback(void const *removal_tag, ::absl::AnyInvocable< void(::webrtc::AsyncPacketSocket *, ::webrtc::ReceivedIpPacket const &)> received_packet_callback)
MCAPI void NotifyPacketReceived(::webrtc::ReceivedIpPacket const &packet)
MCAPI void SubscribeCloseEvent(void const *removal_tag, ::std::function< void(::webrtc::AsyncPacketSocket *, int)> callback)
Definition ReceivedIpPacket.h:17
Definition SocketAddress.h:15
Definition Alias.h:14
Definition AsyncSocketPacketOptions.h:10