EchoBehavior Class Reference#include <EchoBehavior.h>
Inheritance diagram for EchoBehavior:
[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 () |
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) |
| the port to listen on for incoming UDP and TCP connections 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 EchoBehavior * | theOne = 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 |
Protected Types |
enum | routeIndex_t {
STCP = 0,
SUDP,
CTCP,
CUDP,
NUM_ROUTE
} |
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 |
Socket * | sockets [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)
|
EchoBehavior & | operator= (const EchoBehavior &) |
| don't call (assignment operator)
|
Member Enumeration Documentation
|
- Enumerator:
-
STCP |
server TCP |
SUDP |
server UDP |
CTCP |
client TCP |
CUDP |
client UDP |
NUM_ROUTE |
total number of different connections available |
Definition at line 44 of file EchoBehavior.h. |
Constructor & Destructor Documentation
EchoBehavior::EchoBehavior |
( |
|
) |
[inline] |
|
EchoBehavior::~EchoBehavior |
( |
|
) |
[inline] |
|
EchoBehavior::EchoBehavior |
( |
const EchoBehavior & |
|
) |
[private] |
|
|
don't call (copy constructor)
|
Member Function Documentation
int EchoBehavior::client_callbackT |
( |
char * |
buf, |
|
|
int |
bytes |
|
) |
[static] |
|
int EchoBehavior::client_callbackU |
( |
char * |
buf, |
|
|
int |
bytes |
|
) |
[static] |
|
void EchoBehavior::DoStart |
( |
|
) |
[virtual] |
|
|
By default, merely adds to the reference counter (through AddReference()); Note you should still call this from your overriding methods.
Reimplemented from BehaviorBase.
Definition at line 17 of file EchoBehavior.cc. |
void EchoBehavior::DoStop |
( |
|
) |
[virtual] |
|
|
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 ).
Reimplemented from BehaviorBase.
Definition at line 23 of file EchoBehavior.cc. |
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 36 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 41 of file EchoBehavior.h. |
void EchoBehavior::intersect |
( |
unsigned char & |
bits, |
|
|
std::string |
arg |
|
) |
[protected] |
|
|
don't call (assignment operator)
|
void EchoBehavior::processCallback |
( |
routeIndex_t |
src, |
|
|
char * |
buf, |
|
|
int |
bytes |
|
) |
[protected] |
|
void EchoBehavior::processEvent |
( |
const EventBase & |
e |
) |
[virtual] |
|
int EchoBehavior::server_callbackT |
( |
char * |
buf, |
|
|
int |
bytes |
|
) |
[static] |
|
|
the port to listen on for incoming UDP and TCP connections called by wireless when there's new data
Definition at line 184 of file EchoBehavior.cc.
Referenced by setupNetwork(). |
int EchoBehavior::server_callbackU |
( |
char * |
buf, |
|
|
int |
bytes |
|
) |
[static] |
|
void EchoBehavior::setupNetwork |
( |
|
) |
[protected] |
|
void EchoBehavior::teardownNetwork |
( |
|
) |
[protected] |
|
Member Data Documentation
|
Initial value:
{
"TCP Server", "UDP Server","TCP Client","UDP Client"
}
a user-readable name for each incoming or outgoing route
Definition at line 51 of file EchoBehavior.h.
Referenced by processEvent(). |
The documentation for this class was generated from the following files:
|