FastEngine 0.9.5
A multiplayer oriented 2D engine made with Vulkan.
Loading...
Searching...
No Matches
fge::net::ClientSideNetUdp Class Reference

A client side network manager. More...

#include <C_server.hpp>

Inheritance diagram for fge::net::ClientSideNetUdp:
fge::net::NetFluxUdp

Public Types

enum  ProcessOptions : uint32_t { OPTION_NONE = 0 , OPTION_NO_TIMEOUT = 1 << 0 , OPTION_ONE_SHOT = 1 << 1 }

Public Member Functions

 ClientSideNetUdp (IpAddress::Types addressType=IpAddress::Types::Ipv4)
 ClientSideNetUdp (ClientSideNetUdp const &r)=delete
 ClientSideNetUdp (ClientSideNetUdp &&r) noexcept=delete
ClientSideNetUdp & operator= (ClientSideNetUdp const &r)=delete
ClientSideNetUdp & operator= (ClientSideNetUdp &&r) noexcept=delete
bool start (Port bindPort, IpAddress const &bindIp, Port connectRemotePort, IpAddress const &connectRemoteAddress, IpAddress::Types addressType=IpAddress::Types::None)
void stop ()
void notifyTransmission ()
bool isRunning () const
std::future< uint16_t > retrieveMTU ()
std::future< bool > connect (std::string_view versioningString=std::string_view{})
std::future< void > disconnect ()
IpAddress::Types getAddressType () const
std::size_t waitForPackets (std::chrono::milliseconds time_ms)
Identity const & getClientIdentity () const
template<class TPacket = Packet>
void sendTo (TransmitPacketPtr &pck, Identity const &id)
FluxProcessResults process (ReceivedPacketPtr &packet, EnumFlags< ProcessOptions > options=OPTION_NONE)
void resetReturnPacket ()
TransmitPacketPtr & startComplexReturnEvent (uint16_t id)
TransmitPacketPtr & startObjectReturnEvent (uint16_t commandIndex, ObjectSid parentSid, ObjectSid targetSid)
void endReturnEvent ()
void simpleReturnEvent (uint16_t id)
bool askFullUpdateReturnEvent ()
void enableReturnPacket (bool enable)
bool isReturnPacketEnabled () const
TransmitPacketPtr prepareAndRetrieveReturnPacket ()
std::optional< ErrorloopbackReturnPacket (ReturnPacketHandler const &handler)
void clearPackets ()
ReceivedPacketPtr popNextPacket ()
std::size_t getPacketsSize () const
bool isEmpty () const
void setMaxPackets (std::size_t n)
std::size_t getMaxPackets () const
bool isDefaultFlux () const

Public Attributes

Client _client
CallbackHandler< ClientSideNetUdp & > _onClientTimeout
CallbackHandler< ClientSideNetUdp & > _onClientDisconnected
CallbackHandler< ClientSideNetUdp &, TransmitPacketPtr & > _onTransmitReturnPacket

Protected Member Functions

bool pushPacket (ReceivedPacketPtr &&fluxPck)
void forcePushPacket (ReceivedPacketPtr fluxPck)
void forcePushPacketFront (ReceivedPacketPtr fluxPck)

Protected Attributes

std::mutex _g_mutexFlux
std::deque< ReceivedPacketPtr > _g_packets
std::size_t _g_remainingPackets {0}

Detailed Description

A client side network manager.

See also
ServerSideNetUdp

Member Function Documentation

◆ sendTo()

template<class TPacket>
void fge::net::ClientSideNetUdp::sendTo ( TransmitPacketPtr & pck,
Identity const & id )

TODO: have a transmission queue ?


The documentation for this class was generated from the following files: