PTLib  Version 2.10.11
PCLITelnet Class Reference

Command Line Interpreter over Telnet sockets. More...

#include <cli.h>

Inheritance diagram for PCLITelnet:
PCLISocket PCLI PObject

Public Member Functions

Construction
 PCLITelnet (WORD port=0, const char *prompt=NULL, bool singleThreadForAll=false)
 
- Public Member Functions inherited from PCLISocket
 PCLISocket (WORD port=0, const char *prompt=NULL, bool singleThreadForAll=false)
 
 ~PCLISocket ()
 
virtual bool Start (bool runInBackground=true)
 Start a command line interpreter. More...
 
virtual void Stop ()
 Stop and clean up command line interpreters. More...
 
virtual Context * AddContext (Context *context=NULL)
 Add a command line interpreter context to the system. More...
 
virtual void RemoveContext (Context *context)
 Remove the command line interpreter context. More...
 
bool Listen (WORD port=0)
 Start listening socket. More...
 
WORD GetPort () const
 Get the port we are listing on. More...
 
- Public Member Functions inherited from PCLI
virtual ContextStartForeground ()
 Initialise a foreground context and return it. More...
 
virtual bool RunContext (Context *context)
 Run a context. More...
 
 PCLI (const char *prompt=NULL)
 Contracut a new command line interpreter. More...
 
virtual ~PCLI ()
 Destroy the command line interpreter. More...
 
bool StartContext (PChannel *channel, bool autoDelete=true, bool runInBackground=true)
 Open a command line interpreter context. More...
 
bool StartContext (PChannel *readChannel, PChannel *writeChannel, bool autoDeleteRead=true, bool autoDeleteWrite=true, bool runInBackground=true)
 
virtual ContextCreateContext ()
 Create a new context. More...
 
virtual ContextAddContext (Context *context=NULL)
 Add a command line interpreter context to the system. More...
 
virtual void RemoveContext (Context *context)
 Remove the command line interpreter context. More...
 
virtual void GarbageCollection ()
 Remove any closed command line interpreter contexts. More...
 
virtual void OnReceivedLine (Arguments &line)
 Received a completed command line. More...
 
virtual bool OnLogIn (const PString &username, const PString &password)
 Received a login name/pasword to be verified. More...
 
void Broadcast (const PString &message) const
 Set a string to all command line interpreter contexts. More...
 
bool SetCommand (const char *command, const PNotifier &notifier, const char *help=NULL, const char *usage=NULL)
 Register a new command to be interpreted. More...
 
void ShowHelp (Context &context)
 Show help for registered commands to the context. More...
 
const PStringGetNewLine () const
 Get new line string output at the end of every line. More...
 
void SetNewLine (const PString &newLine)
 Set new line string output at the end of every line. More...
 
bool GetRequireEcho () const
 Get flag for echo is required for entered characters. More...
 
void SetRequireEcho (bool requireEcho)
 Set flag for echo is required for entered characters. More...
 
const PStringGetEditCharacters () const
 Get characters used for editing (backspace/delete) command lines. More...
 
void SetEditCharacters (const PString &editCharacters)
 Set characters used for editing (backspace/delete) command lines. More...
 
const PStringGetPrompt () const
 Get prompt used for command line interpreter. More...
 
void SetPrompt (const PString &prompt)
 Set prompt used for command line interpreter. More...
 
const PStringGetUsernamePrompt () const
 Get prompt used for login (if enabled). More...
 
void SetUsernamePrompt (const PString &prompt)
 Set prompt used for login (if enabled). More...
 
const PStringGetPasswordPrompt () const
 Get prompt used for password (if enabled). More...
 
void SetPasswordPrompt (const PString &prompt)
 Set prompt used for password (if enabled). More...
 
const PStringGetUsername () const
 Get username for log in validation. More...
 
void SetUsername (const PString &username)
 Set username for log in validation. More...
 
const PStringGetPassword () const
 Get password for log in validation. More...
 
void SetPassword (const PString &password)
 Set password for log in validation. More...
 
const PCaselessStringGetExitCommand () const
 Get command to be used to exit session. More...
 
void SetExitCommand (const PCaselessString &exitCommand)
 Set command to be used to exit session. More...
 
const PCaselessStringGetHelpCommand () const
 Get command to be used to display help. More...
 
void SetHelpCommand (const PCaselessString &helpCommand)
 Set command to be used to display help. More...
 
const PStringGetHelpOnHelp () const
 Get help on help. More...
 
void SetHelpOnHelp (const PCaselessString &helpOnHelp)
 Set help on help. More...
 
const PCaselessStringGetRepeatCommand () const
 Get the command to be used to repeat the last executed command. More...
 
void SetRepeatCommand (const PCaselessString &repeatCommand)
 Set the command to be used to repeat the last executed command. More...
 
const PCaselessStringGetHistoryCommand () const
 Get command that will list/execute command history. More...
 
void SetHistoryCommand (const PCaselessString &historyCommand)
 Set command that will list/execute command history. More...
 
const PStringGetNoHistoryError () const
 Get error message for if there is no history. More...
 
void SetNoHistoryError (const PString &noHistoryError)
 Set error message for if there is no history. More...
 
const PStringGetCommandUsagePrefix () const
 Get usage prefix for if Arguments::WriteUsage() called. More...
 
void SetCommandUsagePrefix (const PString &commandUsagePrefix)
 Set usage prefix for if Arguments::WriteUsage() called. More...
 
const PStringGetCommandErrorPrefix () const
 Get error prefix for if Arguments::WriteError() called. More...
 
void SetCommandErrorPrefix (const PString &commandErrorPrefix)
 Set error prefix for if Arguments::WriteError() called. More...
 
const PStringGetUnknownCommandError () const
 Get error message for if unknown command is entered. More...
 
void SetUnknownCommandError (const PString &unknownCommandError)
 Set error message for if unknown command is entered. More...
 
- Public Member Functions inherited from PObject
virtual ~PObject ()
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 
virtual const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance. More...
 
PBoolean IsClass (const char *cls) const
 
virtual PBoolean InternalIsDescendant (const char *clsName) const
 Determine if the dynamic type of the current instance is a descendent of the specified class. More...
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Member Functions

virtual PTCPSocketCreateSocket ()
 
- Protected Member Functions inherited from PCLISocket
 PDECLARE_NOTIFIER (PThread, PCLISocket, ThreadMain)
 
bool HandleSingleThreadForAll ()
 
bool HandleIncoming ()
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 

Additional Inherited Members

- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 
- Static Public Member Functions inherited from PObject
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
static const char * Class ()
 Get the name of the class as a C string. More...
 
- Protected Types inherited from PCLISocket
typedef std::map< PSocket *, Context * > ContextMap_t
 
- Protected Types inherited from PCLI
typedef std::map< PString, InternalCommandCommandMap_t
 
typedef std::list< Context * > ContextList_t
 
- Protected Attributes inherited from PCLISocket
bool m_singleThreadForAll
 
PTCPSocket m_listenSocket
 
PThreadm_thread
 
ContextMap_t m_contextBySocket
 
- Protected Attributes inherited from PCLI
PString m_newLine
 
bool m_requireEcho
 
PString m_editCharacters
 
PString m_prompt
 
PString m_usernamePrompt
 
PString m_passwordPrompt
 
PString m_username
 
PString m_password
 
PCaselessString m_exitCommand
 
PCaselessString m_helpCommand
 
PString m_helpOnHelp
 
PCaselessString m_repeatCommand
 
PCaselessString m_historyCommand
 
PString m_noHistoryError
 
PString m_commandUsagePrefix
 
PString m_commandErrorPrefix
 
PString m_unknownCommandError
 
CommandMap_t m_commands
 
ContextList_t m_contextList
 
PMutex m_contextMutex
 

Detailed Description

Command Line Interpreter over Telnet sockets.

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

Constructor & Destructor Documentation

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

Member Function Documentation

virtual PTCPSocket* PCLITelnet::CreateSocket ( )
protectedvirtual

Reimplemented from PCLISocket.


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