Namespaces | Defines | Typedefs | Functions | Variables

netlib.cpp File Reference

#include "netlib.h"
#include "wavesock.h"
#include <deque>
#include <string.h>
#include "common/wave_ex.h"
#include "perf/perf.h"
#include "util/parsing.h"
Include dependency graph for netlib.cpp:

Go to the source code of this file.


namespace  netlib


#define _XOPEN_SOURCE   600


typedef std::deque< request_t > netlib::message_queue_t
typedef std::map< conn_id_t,
smart_ptr< conn_rec_t > > 


static const char * netlib::getTypeName (eConnectionType type)
static conn_id_t netlib::getNewConnectionId (void)
static void netlib::dumpErrorInfo (const char *msg)
static void netlib::verify (bool isOK, const char *msg)
static void netlib::verifyThrow (bool isOK, const char *msg)
static conn_rec_t * netlib::getConnectionRecord (conn_id_t conn_id)
static bool netlib::readBuffer (conn_rec_t *rec)
static void netlib::parseHeaderLine (conn_rec_t *rec)
static bool netlib::handleData (conn_rec_t *rec, envelope_t &envelope, smart_ptr< MessageBuffer > &msgbuf)
static conn_id_t netlib::addConnectionRecord (eConnectionType type, int socket, const address_t &address)
static conn_id_t netlib::handleConnection (conn_rec_t *rec)
static void netlib::writeMessage (conn_rec_t *rec)
static void netlib::handleWrites (ws_set_t writeable)
static bool netlib::handleRead (ws_set_t readers, envelope_t &envelope, smart_ptr< MessageBuffer > &msgbuf)
std::string netlib::getServerFromIP (const ip_addr_t &ip)
conn_id_t netlib::createTcpListener (const address_t &address,int maxBacklog)
 create a listener (if clients connect, you'll see their messages show up)
conn_id_t netlib::createTcpConnection (const address_t &address)
 create a connection to a remote peer (connection ID is returned)
conn_id_t netlib::createUdpLocal (const address_t &localUdp)
 create a local UDP connection for sending/receiving datagrams.
conn_id_t netlib::createUdpRemote (conn_id_t localUdp,const address_t &address)
 create a logical connection to represent a remote UDP sender/receiver

  • caller must specify the local UDP connection that will communicate this is used for sending to remote UDP listeners

conn_id_t netlib::createUdpBroadcast (const address_t &broadcastAddress)
 create a local UDP sending point for datagram broadcasts to a specific port.
bool netlib::enqueueMessage (conn_id_t connId,smart_ptr< MessageBuffer > &message)
 asynchronously send data to a particular connection

  • conn_id specifies the (remote) receiver
  • queued messages are actually sent via getNextMessage() calls

bool netlib::getNextMessage (long wait_microseconds,netlib::envelope_t &envelope,smart_ptr< MessageBuffer > &buffer)
 get next message from all open connections (empty if no messages waiting)

  • this is the main message pump so applications should keep calling it

bool netlib::isValidConnection (conn_id_t conn_id)
 is this a valid connection?
bool netlib::getConnectionInfo (conn_id_t conn_id,connection_info_t &info)
 given a connection, retrieve information about it
void netlib::closeConnection (conn_id_t conn_id)
 terminate a particular connection
void netlib::dumpMessage (std::ostream &stream,const char *title,const envelope_t &envelope,const MessageBuffer *buffer)
 for debugging
void netlib::dumpStats (void)
 info only


static const int netlib::s_chunkSize = 8192
static const int netlib::s_maxHeaderLine = 64
static conn_map_t netlib::s_connection_map
static dword_t netlib::s_messagesSent = 0
static dword_t netlib::s_messagesReceived = 0
static qword_t netlib::s_bytesWritten = 0
static qword_t netlib::s_bytesRead = 0

Define Documentation

#define _XOPEN_SOURCE   600

Definition at line 41 of file netlib.cpp.