class CAVERNnet_perfDaemonClient_c

This class is a very low-level class that is designed for specific uses

Public Methods

CAVERNnet_perfDaemonClient_c (int isPerfClient = 0)
Constructor
CAVERNnet_perfDaemonClient_c (CAVERNnet_tcpClient_c*, int isPerfClient = 0)
Use this constructor if you have a pre-opened socket
int read (char** ret, int* nbytes, int blockingType)
Read data from a reflector (if available)
int write (char *outgoingData, int* nbytes)
Write data to the reflector
int isReadyToRead ()
Determines if a socket has data available to read
int isReadyToWrite ()
Determines if a socket is ready to write
int isReady ()
Determines if a socket is ready to write or read or both
void showStatus (int status, int nbytes)
Show status of connection in English.
void showStats ()
Show statistics of a connection.
void close ()
Close the current client connection.
int connectToServer (char *ip, int port=PERF_DAEMON_DEFAULT_PORT)
Connect to a server
void setTimeOut (int timeout=CAVERNnet_perfDaemonClient_c::NO_TIME_OUT)
Set timeout for read and writes

Public


static const int OK
Status ok.
static const int FAILED
Status failed.
static const int MEM_ALLOC_ERR
Memory allocation error.
static const int NON_BLOCKING_HAS_NO_DATA
A non-blocking read had no data available to read.
static const int CONNECTION_TERMINATED
Connection terminated.
static const int NOT_READY
Connection not ready for use.
static const int READY_TO_READ
Connection has data available to read.
static const int READY_TO_WRITE
Connection is ready to write.
static const int READY_TO_READ_AND_WRITE
Connection has data available to read and is ready to write.

Accessor functions
unsigned int getRemoteIP ()
Get the IP address of remote connection
void getRemoteIP (char* name)
Get the IP address of remote connection
unsigned int getSelfIP ()
Get IP address of self.
void getSelfIP (char *name)
Get IP address of self.
int getSelfPort ()
Get port of self.
int getRemotePort ()
Get port of client.

Documentation

This class is a very low-level class that is designed for specific uses. If what you want to do is checking performance characteristics of your application, you don't have to use this class at all. All CAVERNsoft G2 classes since version 1.1 are updated with instrumentation features.

CAVERNnet_perfDaemonClient_c is a specially designed class specifically for use with CAVERNnet_perfDaemon_c class or performance monitoring daemon application that instantiates and utilizes CAVERNnet_perfDaemon_c class. This class can be used if you want to do one of the following:

First, it can be used to communicate directly with performance daemon. If you want to send special messages to the daemon, you can use this class for the purpose. Second, you are developing real time performance monitoring applications like QoSiMoto.

If you want to send your own special messages to performance monitoring daemon, you have to simply instantiate this class and use provided methods to send special messages to the performance daemon. If your interest is in monitoring the performance characteristics of other applications then you need to register as performance monitoring client when you instantiate this class. Read the description of constructors to find out how to register your application as performance monitoring client.

CAVERNnet_perfDaemonClient_c(int isPerfClient = 0)
Constructor
Parameters:
isPerfClient - 1 if your application is designed to monitor the performance characteristics of other applications like QoSiMoto. Otherwise, specify 0.

int read(char** ret, int* nbytes, int blockingType)
Read data from a reflector (if available)
Returns:
Either CAVERNnet_perfDaemonClient_c::MEM_ALLOC_ERR, OK, FAILED, NON_BLOCKING_HAS_NO_DATA, CONNECTION_TERMINATED.
Parameters:
blockingType - set to either CAVERNnet_perfDaemonClient_c::BLOCKING, NON_BLOCKING.
ret - set to a pointer to a char*. Read will allocate memory for the buffer and assign it to your pointer. You are responsible for deleteing the buffer once you are done with it.
nbytes - returns the number of bytes in the buffer.

int write(char *outgoingData, int* nbytes)
Write data to the reflector
Returns:
Either CAVERNnet_perfDaemonClient_c::OK,CONNECTION_TERMINATED.
Parameters:
outgoingData - set to your buffer containing data.
nbytes - set to size of the buffer refered to by outgoingData

int isReadyToRead()
Determines if a socket has data available to read
Returns:
Either: CAVERNnet_perfDaemonClient_c::NOT_READY or CAVERNnet_perfDaemonClient_c::READY_TO_READ

int isReadyToWrite()
Determines if a socket is ready to write
Returns:
Either: CAVERNnet_perfDaemonClient_c::NOT_READY or CAVERNnet_perfDaemonClient_c::READY_TO_WRITE

int isReady()
Determines if a socket is ready to write or read or both
Returns:
Either: CAVERNnet_perfDaemonClient_c::NOT_READY or CAVERNnet_perfDaemonClient_c::READY_TO_WRITE or CAVERNnet_perfDaemonClient_c::READY_TO_READ or CAVERNnet_perfDaemonClient_c::READY_TO_READ_AND_WRITE

unsigned int getRemoteIP()
Get the IP address of remote connection. If you are a client this returns the ip of the destination server. If you are a server this returns the ip of the destination client.

void getRemoteIP(char* name)
Get the IP address of remote connection. If you are a client this returns the ip of the destination server. If you are a server this returns the ip of the destination client.

int connectToServer(char *ip, int port=PERF_DAEMON_DEFAULT_PORT)
Connect to a server
Returns:
Either: CAVERNnet_perfDaemonClient_c::OK or FAILED
Parameters:
ip - IP address to connect to.
port - Port to connect to.

void setTimeOut(int timeout=CAVERNnet_perfDaemonClient_c::NO_TIME_OUT)
Set timeout for read and writes. By default no time out is set. Setting time out means that if the read or write is unsuccessful after a certain amount of time the connection will be terminated. This is to prevent you from doing subsequent writes or reads from the stream and getting incorrect data. In order to re-establish the connection you need to instantiate another object of this type.


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de