PCLISocket Class Reference

Command Line Interpreter over TCP sockets. More...

#include <cli.h>

Inheritance diagram for PCLISocket:

PCLI PObject PCLITelnet List of all members.

Public Member Functions

Construction
 PCLISocket (WORD port=0, const char *prompt=NULL, bool singleThreadForAll=false)
 ~PCLISocket ()
Overrides from PCLI
virtual bool Start (bool runInBackground=true)
 Start a command line interpreter.
virtual void Stop ()
 Stop and clean up command line interpreters.
virtual Context * AddContext (Context *context=NULL)
 Add a command line interpreter context to the system.
virtual void RemoveContext (Context *context)
 Remove the command line interpreter context.
Operations
bool Listen (WORD port=0)
 Start listening socket.
WORD GetPort () const
 Get the port we are listing on.

Protected Types

typedef std::map< PSocket *,
Context * > 
ContextMap_t

Protected Member Functions

 PDECLARE_NOTIFIER (PThread, PCLISocket, ThreadMain)
bool HandleSingleThreadForAll ()
bool HandleIncoming ()
virtual PTCPSocketCreateSocket ()

Protected Attributes

bool m_singleThreadForAll
PTCPSocket m_listenSocket
PThreadm_thread
ContextMap_t m_contextBySocket

Detailed Description

Command Line Interpreter over TCP sockets.

This class allows for access and automatic creation of command line interpreter contexts from incoming TCP connections on a listening port.


Member Typedef Documentation

typedef std::map<PSocket *, Context *> PCLISocket::ContextMap_t [protected]


Constructor & Destructor Documentation

PCLISocket::PCLISocket ( WORD  port = 0,
const char *  prompt = NULL,
bool  singleThreadForAll = false 
)

PCLISocket::~PCLISocket (  ) 


Member Function Documentation

virtual Context* PCLISocket::AddContext ( Context *  context = NULL  )  [virtual]

Add a command line interpreter context to the system.

If context is NULL then CreateContext() is called to create one.

virtual PTCPSocket* PCLISocket::CreateSocket (  )  [protected, virtual]

Reimplemented in PCLITelnet.

WORD PCLISocket::GetPort (  )  const [inline]

Get the port we are listing on.

bool PCLISocket::HandleIncoming (  )  [protected]

bool PCLISocket::HandleSingleThreadForAll (  )  [protected]

bool PCLISocket::Listen ( WORD  port = 0  ) 

Start listening socket.

PCLISocket::PDECLARE_NOTIFIER ( PThread  ,
PCLISocket  ,
ThreadMain   
) [protected]

virtual void PCLISocket::RemoveContext ( Context *  context  )  [virtual]

Remove the command line interpreter context.

The context thread is stopped, the channel closed and memory deleted.

virtual bool PCLISocket::Start ( bool  runInBackground = true  )  [virtual]

Start a command line interpreter.

This will start listening for incoming TCP connections and create/dispatch contexts to handle them.

Parameters:
runInBackground  Spawn a thread to read and interpret commands

Reimplemented from PCLI.

virtual void PCLISocket::Stop (  )  [virtual]

Stop and clean up command line interpreters.

All the running contexts threads will be stopped, closing the channels and memory cleaned up.

The listening socket is also closed and the listener dispatch thread shut down.

Reimplemented from PCLI.


Member Data Documentation

ContextMap_t PCLISocket::m_contextBySocket [protected]

PTCPSocket PCLISocket::m_listenSocket [protected]

bool PCLISocket::m_singleThreadForAll [protected]

PThread* PCLISocket::m_thread [protected]


The documentation for this class was generated from the following file:
Generated on Fri Oct 14 01:44:11 2011 for PTLib by  doxygen 1.4.7