Panda3D
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends

Buffered_DatagramConnection Class Reference

Inheritance diagram for Buffered_DatagramConnection:
Socket_TCP Socket_IP TypedObject MemoryBase

List of all members.

Classes

struct  AddressQueue

Public Member Functions

 Buffered_DatagramConnection (int rbufsize, int wbufsize, int write_flush_point)
 Return type : inline Argument : bool do_blocking_writes Argument : int rbufsize Argument : int wbufsize.
virtual ~Buffered_DatagramConnection (void)
 Return type : inline Argument : void.
bool Active ()
 Ask if the socket is open (allocated)
bool ActiveOpen (const Socket_Address &theaddress, bool setdelay)
 This function will try and set the socket up for active open to a specified address and port provided by the input parameter.
bool ActiveOpenNonBlocking (const Socket_Address &theaddress)
 This function will try and set the socket up for active open to a specified address and port provided by the input parameter (non-blocking version)
void AddAddress (Socket_Address &inadr)
 must be called to set value to the server
size_t AddressQueueSize ()
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer.
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer.
void ClearAddresses (void)
void Close ()
 closes a socket if it is open (allocated)
bool DoConnect (void)
int DontLinger ()
 Turn off the linger flag.
bool ErrorIs_WouldBlocking (int err)
bool Flush (void)
 flush all wrightes
virtual TypeHandle force_init_type ()
int get_best_parent_from_Set (const std::set< int > &) const
virtual TypeHandle get_type () const
int get_type_index () const
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
bool GetMessage (Datagram &val)
 read a message
Socket_Address GetPeerName (void) const
 Wrapper on berkly getpeername...
SOCKET GetSocket () const
 Get The RAW file id of the socket.
SOCKET GetSocket ()
 Gets the base socket type.
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly.
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type.
bool IsConnected (void)
void operator delete (void *ptr)
void operator delete (void *ptr, void *)
void operator delete[] (void *ptr)
void operator delete[] (void *, void *)
void * operator new (size_t size)
void * operator new (size_t size, void *ptr)
void * operator new[] (size_t size)
void * operator new[] (size_t size, void *ptr)
int RecvData (char *data, int size)
 Read the data from the connection.
std::string RecvData (int max_len)
 Read the data from the connection.
void Reset (void)
 Reset.
int SendData (const char *data, int size)
 Ok Lets Send the Data.
int SendData (const std::string &str)
bool SendMessage (const Datagram &msg)
 send the message
int SetBlocking ()
 Set the socket to block on subsequent calls to socket functions that address this socket.
int SetLinger (int interval_seconds=0)
 will control the behavior of SO_LINGER for a TCP socket
int SetNoDelay (bool flag=true)
 Disable Nagle algorithm.
int SetNonBlocking ()
 this function will throw a socket into non-blocking mode
int SetRecvBufferSize (int size)
 Ok it sets the recv buffer size for both tcp and UDP.
bool SetReuseAddress (bool flag=true)
 Informs a socket to reuse IP address as needed.
int SetSendBufferSize (int insize)
 Just like it sounds.
void SetSocket (SOCKET ins)
 Assigns an existing socket to this class.
bool ShutdownSend ()
void WaitForNetworkReadEvent (float MaxTime)

Static Public Member Functions

static TypeHandle get_class_type ()
static int GetLastError ()
 gets the last errcode from a socket operation
static void init_type ()
 This function is declared non-inline to work around a compiler bug in g++ 2.96.
static int InitNetworkDriver ()

Protected Member Functions

void ClearAll (void)
 used to do a full reset of buffers
virtual void NewWriteBuffer (void)
virtual void PostConnect (void)
bool SendMessageBufferOnly (Datagram &msg)

Friends

class Buffered_DatagramReader
class Buffered_DatagramWriter

Detailed Description

Definition at line 31 of file buffered_datagramconnection.h.


Constructor & Destructor Documentation

Buffered_DatagramConnection::Buffered_DatagramConnection ( int  rbufsize,
int  wbufsize,
int  write_flush_point 
) [inline]

Return type : inline Argument : bool do_blocking_writes Argument : int rbufsize Argument : int wbufsize.

Definition at line 221 of file buffered_datagramconnection.h.

* Buffered_DatagramConnection::~Buffered_DatagramConnection ( void  ) [inline, virtual]

Return type : inline Argument : void.

Definition at line 208 of file buffered_datagramconnection.h.

References Socket_IP::Close().


Member Function Documentation

bool Socket_IP::Active ( ) [inline, inherited]

Ask if the socket is open (allocated)

Definition at line 105 of file socket_ip.h.

Referenced by Socket_IP::Close().

bool Socket_TCP::ActiveOpen ( const Socket_Address theaddress,
bool  setdelay 
) [inline, inherited]

This function will try and set the socket up for active open to a specified address and port provided by the input parameter.

Definition at line 131 of file socket_tcp.h.

References Socket_TCP::SetNoDelay().

bool Socket_TCP::ActiveOpenNonBlocking ( const Socket_Address theaddress) [inline, inherited]

This function will try and set the socket up for active open to a specified address and port provided by the input parameter (non-blocking version)

Definition at line 152 of file socket_tcp.h.

References Socket_IP::SetNonBlocking(), and Socket_IP::SetReuseAddress().

void Buffered_DatagramConnection::AddAddress ( Socket_Address inadr) [inline]

must be called to set value to the server

Return type : inline void Argument : Socket_Address &inadr

Definition at line 280 of file buffered_datagramconnection.h.

TypedObject * TypedObject::as_typed_object ( ) [inline, inherited]

Returns the object, upcast (if necessary) to a TypedObject pointer.

Definition at line 99 of file typedObject.I.

const TypedObject * TypedObject::as_typed_object ( ) const [inline, inherited]

Returns the object, upcast (if necessary) to a TypedObject pointer.

Definition at line 110 of file typedObject.I.

void Buffered_DatagramConnection::ClearAll ( void  ) [inline, protected]

used to do a full reset of buffers

Return type : inline void Argument : void

Definition at line 130 of file buffered_datagramconnection.h.

References Socket_IP::Close(), and Buffered_DatagramWriter::ReSet().

Referenced by Flush(), GetMessage(), Reset(), and SendMessage().

void Socket_IP::Close ( ) [inline, inherited]
int Socket_TCP::DontLinger ( ) [inline, inherited]

Turn off the linger flag.

The socket will quickly release buffered items and free up OS resources. You may lose a stream if you use this flag and do not negotiate the close at the application layer.

Definition at line 102 of file socket_tcp.h.

Referenced by Connection::set_linger().

bool Buffered_DatagramConnection::Flush ( void  ) [inline]

flush all wrightes

Return type : bool Argument : void

Definition at line 325 of file buffered_datagramconnection.h.

References ClearAll(), and Socket_IP::GetLastError().

int TypedObject::get_type_index ( ) const [inline, inherited]

Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.

This is equivalent to get_type().get_index().

Definition at line 52 of file typedObject.I.

References TypeHandle::get_index().

int Socket_IP::GetLastError ( ) [inline, static, inherited]

gets the last errcode from a socket operation

Definition at line 152 of file socket_ip.h.

Referenced by Flush(), Socket_UDP_Incoming::GetPacket(), and ConnectionListener::process_incoming_data().

bool Buffered_DatagramConnection::GetMessage ( Datagram val) [inline]

read a message

false means something bad happened..

Return type : inline bool Argument : Datagram &val

Definition at line 299 of file buffered_datagramconnection.h.

References ClearAll().

Socket_Address Socket_IP::GetPeerName ( void  ) const [inline, inherited]

Wrapper on berkly getpeername...

Definition at line 257 of file socket_ip.h.

Referenced by Connection::get_address().

SOCKET Socket_IP::GetSocket ( ) [inline, inherited]

Gets the base socket type.

Definition at line 240 of file socket_ip.h.

Referenced by Socket_fdset::IsSetFor(), and Socket_UDP_Incoming::OpenForInputMCast().

SOCKET Socket_IP::GetSocket ( ) const [inline, inherited]

Get The RAW file id of the socket.

Definition at line 249 of file socket_ip.h.

static void Buffered_DatagramConnection::init_type ( ) [inline, static]

This function is declared non-inline to work around a compiler bug in g++ 2.96.

Making it inline seems to cause problems in the optimizer.

Reimplemented from Socket_TCP.

Definition at line 109 of file buffered_datagramconnection.h.

References Socket_IP::init_type().

bool TypedObject::is_exact_type ( TypeHandle  handle) const [inline, inherited]
bool TypedObject::is_of_type ( TypeHandle  handle) const [inline, inherited]

Returns true if the current object is or derives from the indicated type.

Definition at line 63 of file typedObject.I.

References TypeHandle::is_derived_from().

Referenced by EggSliderData::add_back_pointer(), EggJointData::add_back_pointer(), CIntervalManager::add_c_interval(), XFileNode::add_child(), CollisionTraverser::add_collider(), CollisionHandlerPhysical::add_collider(), EggXfmSAnim::add_data(), CharacterJointBundle::add_node(), NonlinearImager::add_screen(), EggGroupNode::apply_first_attribute(), EggGroupNode::apply_last_attribute(), DeferredNodeProperty::apply_to_node(), RecorderController::begin_playback(), NodePath::clear_clip_plane(), EggGroupNode::clear_connected_shading(), NodePath::clear_light(), EggBase::convert_paths(), NodePath::decode_from_bam_stream(), VrpnClient::disconnect_device(), PhysicsManager::do_physics(), GraphicsStateGuardian::fetch_specified_part(), EggRenderState::fill_state(), AnimBundleNode::find_anim_bundle(), EggGroupNode::find_coordsys_entry(), XFile::find_data_object(), Character::find_joint(), EggGroupNode::find_materials(), Character::find_slider(), XFile::find_template(), EggGroupNode::find_textures(), EggMaterialCollection::find_used_materials(), EggTextureCollection::find_used_textures(), EggGroupNode::force_filenames(), EggJointData::force_initial_rest_frame(), WindowFramework::get_aspect_2d(), EggPoolUniquifier::get_category(), EggGroupUniquifier::get_category(), EggGroupNode::get_connected_shading(), PandaFramework::get_mouse(), FactoryParams::get_param_of_type(), EggGroupNode::has_absolute_pathnames(), NodePath::has_clip_plane(), NodePath::has_clip_plane_off(), NodePath::has_light(), PandaFramework::hide_collision_solids(), x11GraphicsWindow::open_window(), eglGraphicsWindow::open_window(), EggNode::parse_egg(), CharacterMaker::part_to_node(), EggGroupNode::post_apply_flat_attribute(), EggBinner::prepare_node(), PortalClipper::prepare_portal(), NodePath::project_texture(), EggMatrixTablePointer::quantize_channels(), ParametricCurveCollection::r_add_curves(), SceneGraphReducer::r_collect_vertex_data(), EggGroupNode::r_load_externals(), EggGroupNode::rebuild_vertex_pools(), EggGroupNode::recompute_polygon_normals(), EggGroupNode::remove_invalid_primitives(), EggGroupNode::remove_unused_vertices(), EggLoader::reparent_decals(), EggMaterialCollection::replace_materials(), EggTextureCollection::replace_textures(), EggGroupNode::resolve_filenames(), EggGroupNode::reverse_vertex_ordering(), NodePath::set_clip_plane(), NodePath::set_clip_plane_off(), NodePath::set_light(), ProjectionScreen::set_projector(), NonlinearImager::set_source_camera(), EggXfmSAnim::set_value(), NonlinearImager::set_viewer_camera(), PandaFramework::show_collision_solids(), BamCache::store(), XFileToEggConverter::strip_nodes(), EggGroupNode::strip_normals(), DataGraphTraverser::traverse(), DataGraphTraverser::traverse_below(), EggGroupNode::triangulate_polygons(), EggGroupNode::unify_attributes(), EggNameUniquifier::uniquify(), NodeCullCallbackData::upcall(), PhysicsCollisionHandler::validate_target(), EggXfmSAnim::write(), EggGroup::write(), EggToDXFLayer::write_3d_face(), and EggToDXFLayer::write_entities().

int Socket_TCP::RecvData ( char *  data,
int  len 
) [inline, inherited]

Read the data from the connection.

Return type : int

  • if error 0 if socket closed for read or length is 0 + bytes read ( May be smaller than requested)

Definition at line 195 of file socket_tcp.h.

std::string Socket_TCP::RecvData ( int  max_len) [inline, inherited]

Read the data from the connection.

Return type : int

  • if error 0 if socket closed for read or length is 0 + bytes read ( May be smaller than requested)

Definition at line 210 of file socket_tcp.h.

void Buffered_DatagramConnection::Reset ( void  ) [inline]

Reset.

Return type : void Argument : void

Definition at line 349 of file buffered_datagramconnection.h.

References ClearAll().

int Socket_TCP::SendData ( const char *  data,
int  size 
) [inline, inherited]

Ok Lets Send the Data.

Return type : int

  • if error 0 if socket closed for write or lengh is 0 + bytes writen ( May be smaller than requested)

Definition at line 181 of file socket_tcp.h.

bool Buffered_DatagramConnection::SendMessage ( const Datagram msg) [inline]

send the message

Return type : inline bool Argument : DataGram &msg

Definition at line 234 of file buffered_datagramconnection.h.

References Buffered_DatagramWriter::AddData(), ClearAll(), Datagram::dump_hex(), Datagram::get_data(), and Datagram::get_length().

int Socket_IP::SetBlocking ( ) [inline, inherited]

Set the socket to block on subsequent calls to socket functions that address this socket.

Definition at line 207 of file socket_ip.h.

int Socket_TCP::SetLinger ( int  interval_seconds = 0) [inline, inherited]

will control the behavior of SO_LINGER for a TCP socket

Definition at line 84 of file socket_tcp.h.

Referenced by Connection::set_linger().

int Socket_TCP::SetNoDelay ( bool  flag = true) [inline, inherited]

Disable Nagle algorithm.

Don't delay send to coalesce packets

Definition at line 68 of file socket_tcp.h.

Referenced by Socket_TCP::ActiveOpen(), and Connection::set_no_delay().

int Socket_IP::SetNonBlocking ( ) [inline, inherited]

this function will throw a socket into non-blocking mode

Definition at line 183 of file socket_ip.h.

Referenced by Socket_TCP::ActiveOpenNonBlocking(), and Connection::Connection().

int Socket_IP::SetRecvBufferSize ( int  size) [inline, inherited]

Ok it sets the recv buffer size for both tcp and UDP.

Definition at line 171 of file socket_ip.h.

Referenced by Connection::set_recv_buffer_size().

bool Socket_IP::SetReuseAddress ( bool  flag = true) [inline, inherited]

Informs a socket to reuse IP address as needed.

Definition at line 228 of file socket_ip.h.

Referenced by Socket_TCP::ActiveOpenNonBlocking(), Socket_TCP_Listen::OpenForListen(), and Connection::set_reuse_addr().

int Socket_TCP::SetSendBufferSize ( int  insize) [inline, inherited]

Just like it sounds.

Sets a buffered socket recv buffer size. This function does not refuse ranges outside hard-coded OS limits

Definition at line 119 of file socket_tcp.h.

Referenced by Connection::set_send_buffer_size().

void Socket_IP::SetSocket ( SOCKET  ins) [inline, inherited]

Assigns an existing socket to this class.

Definition at line 161 of file socket_ip.h.

References Socket_IP::Close().


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations