Panda3D
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes

HttpConnection Class Reference

Inheritance diagram for HttpConnection:
Socket_TCP Socket_IP TypedObject MemoryBase Http_Request

List of all members.

Public Member Functions

 HttpConnection (SOCKET sck, Socket_Address &inaddr)
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)
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.
virtual bool BuildPage (BufferedWriter_Growable &_writer, ParsedHttpRequest &parser)=0
void Close ()
 closes a socket if it is open (allocated)
int DontLinger ()
 Turn off the linger flag.
int DoReadBody (char *message, int buffersize, Time_Clock &currentTime)
int DoReadHeader (char *message, int buffersize, Time_Clock &currentTime)
bool ErrorIs_WouldBlocking (int err)
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.
std::string GetFullmessage ()
const Socket_AddressGetMyAddress (void)
Socket_Address GetPeerName (void) const
 Wrapper on berkly getpeername...
SOCKET GetSocket ()
 Gets the base socket type.
SOCKET GetSocket () const
 Get The RAW file id of the socket.
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.
void operator delete (void *ptr)
void operator delete (void *ptr, void *)
void operator delete[] (void *, void *)
void operator delete[] (void *ptr)
void * operator new (size_t size)
void * operator new (size_t size, void *ptr)
void * operator new[] (size_t size, void *ptr)
void * operator new[] (size_t size)
CloseState ProcessMessage (char *message, Time_Clock &currentTime)
int ReadIt (char *message, int buffersize, Time_Clock &currentTime)
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 ()
int SendData (const char *data, int size)
 Ok Lets Send the Data.
int SendData (const std::string &str)
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 ()
virtual CloseState TryAndFinalize ()

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 Types

enum  STATE_CONNECTIONS {
  READING_HEADER = 1, READING_POST = 2, WAITING_TO_FINALIZE = 3, WRITING_DATA = 4,
  ABORTING = 5
}

Protected Member Functions

int CloseStateWriter (Time_Clock &currentTime)

Protected Attributes

StrTargetBuffer _bodyDetail
std::string _headerDetail
Socket_Address _MyAddress
ParsedHttpRequest _parser
Http_BufferedReader _Reader
STATE_CONNECTIONS _state
Time_Out _Timer
BufferedWriter_Growable _writer

Detailed Description

Definition at line 12 of file http_connection.h.


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().

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 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().

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 Buffered_DatagramConnection::Flush(), Socket_UDP_Incoming::GetPacket(), and ConnectionListener::process_incoming_data().

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 HttpConnection::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.

Reimplemented in Http_Request.

Definition at line 60 of file http_connection.h.

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.

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.

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