Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

EchoBehavior Class Reference

#include <EchoBehavior.h>

Inheritance diagram for EchoBehavior:

Inheritance graph
[legend]
List of all members.

Detailed Description

Waits for a connection, echos any data received back to the sender.

Definition at line 9 of file EchoBehavior.h.

Public Member Functions

 EchoBehavior ()
 constructor
 ~EchoBehavior ()
 destructor
virtual void DoStart ()
 By default, merely adds to the reference counter (through AddReference()); Note you should still call this from your overriding methods.
virtual void DoStop ()
 By default, subtracts from the reference counter (RemoveReference()), and thus may deletex if zero; Don't forget to still call this when you override this; Warning: call this at the end of your DoStop(), not beginning (it might delete this ).
virtual void processEvent (const EventBase &e)
 By defining here, allows you to get away with not supplying a processEvent() function for the EventListener interface. By default, does nothing.
virtual std::string getDescription () const
 Gives a short description of what this particular instantiation does (in case a more specific description is needed on an individual basis).

Static Public Member Functions

static int server_callbackT (char *buf, int bytes)
 called by wireless when there's new data
static int client_callbackT (char *buf, int bytes)
 called by wireless when there's new data
static int server_callbackU (char *buf, int bytes)
 called by wireless when there's new data
static int client_callbackU (char *buf, int bytes)
 called by wireless when there's new data
static std::string getClassDescription ()
 Gives a short description of what this class of behaviors does... you should override this (but don't have to).

Static Public Attributes

static EchoBehaviortheOne = NULL
 the singleton object (only one of these objects can be active at a time or they would conflict over ports)
static unsigned short port = 11011
 the port to listen on for incoming UDP and TCP connections

Protected Types

 STCP = 0
 server TCP
 SUDP
 server UDP
 CTCP
 client TCP
 CUDP
 client UDP
 NUM_ROUTE
 total number of different connections available
enum  routeIndex_t {
  STCP = 0, SUDP, CTCP, CUDP,
  NUM_ROUTE
}
 indicates one of the available data sinks: combinations of client/server and TCP/UDP More...

Protected Member Functions

void setupNetwork ()
 initialize server ports
void teardownNetwork ()
 close open connections
void processCallback (routeIndex_t src, char *buf, int bytes)
 called by one of the wireless callbacks to do processing
void intersect (unsigned char &bits, std::string arg)
 unsets bits of bits which aren't represented by arg

Protected Attributes

Socketsockets [NUM_ROUTE]
 an array of sockets, one for each incoming or outgoing route
int socks [NUM_ROUTE]
 the system socket number for each of sockets, used to detect when a socket has been closed
bool route [NUM_ROUTE][NUM_ROUTE]
 a table of bools indicating how data should be echoed -- if route[from][to] is set, route it

Static Protected Attributes

static const char *const routeNames [NUM_ROUTE]
 a user-readable name for each incoming or outgoing route

Private Member Functions

 EchoBehavior (const EchoBehavior &)
 don't call (copy constructor)
EchoBehavioroperator= (const EchoBehavior &)
 don't call (assignment operator)


Member Enumeration Documentation

enum EchoBehavior::routeIndex_t [protected]

indicates one of the available data sinks: combinations of client/server and TCP/UDP

Enumerator:
STCP  server TCP
SUDP  server UDP
CTCP  client TCP
CUDP  client UDP
NUM_ROUTE  total number of different connections available

Definition at line 46 of file EchoBehavior.h.


Member Function Documentation

static std::string EchoBehavior::getClassDescription (  )  [inline, static]

Gives a short description of what this class of behaviors does... you should override this (but don't have to).

If you do override this, also consider overriding getDescription() to return it

Reimplemented from BehaviorBase.

Definition at line 37 of file EchoBehavior.h.

Referenced by getDescription().

virtual std::string EchoBehavior::getDescription (  )  const [inline, virtual]

Gives a short description of what this particular instantiation does (in case a more specific description is needed on an individual basis).

By default simply returns getName(), because any calls from a BehaviorBase function to getClassDescription() are going to call BehaviorBase::getClassDescription(), not ~YourSubClass~getClassDescription(), because static functions can't be virtual in C++ (doh!)

This means that getDescription called on a pointer to a BehaviorBase of unknown subtype would always return an empty string, which is pretty useless. So instead we return the name in this situation. If you want getDescription to return getClassDescription, you'll have to override it in your subclass to do so.

Reimplemented from BehaviorBase.

Definition at line 42 of file EchoBehavior.h.


Member Data Documentation

const char *const EchoBehavior::routeNames [static, protected]

Initial value:

 
{
  "TCP Server", "UDP Server","TCP Client","UDP Client"
}
a user-readable name for each incoming or outgoing route

Definition at line 53 of file EchoBehavior.h.

Referenced by processEvent().


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

Tekkotsu v3.0
Generated Fri May 11 20:08:02 2007 by Doxygen 1.4.7