PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PVXMLGrammar Class Referenceabstract

#include <vxml.h>

Inheritance diagram for PVXMLGrammar:
Collaboration diagram for PVXMLGrammar:

Public Types

enum  GrammarState {
  Idle, Started, Filled, NoInput,
  NoMatch, Help
}
 
- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 

Public Member Functions

 PVXMLGrammar (PVXMLSession &session, PXMLElement &field)
 
virtual void OnUserInput (const char ch)=0
 
virtual void Start ()
 
virtual bool Process ()
 
GrammarState GetState () const
 
void SetIdle ()
 
void SetSessionTimeout ()
 
void SetTimeout (const PTimeInterval &timeout)
 
- Public Member Functions inherited from PObject
__inline unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
__inline void SetTraceContextIdentifier (unsigned id)
 
__inline void SetTraceContextIdentifier (const PObject &obj)
 
__inline void SetTraceContextIdentifier (const PObject *obj)
 
__inline void CopyTraceContextIdentifier (PObject &obj) const
 
__inline void CopyTraceContextIdentifier (PObject *obj) const
 
virtual ~PObject ()
 
__inline const char * GetClass () const
 
__inline bool IsClass (const char *name) const
 
__inline const PObjectPTraceObjectInstance () const
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. 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 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

 PDECLARE_NOTIFIER (PTimer, PVXMLGrammar, OnTimeout)
 
virtual bool IsFilled ()
 
 PDECLARE_MUTEX (m_mutex)
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 

Protected Attributes

PVXMLSessionm_session
 
PXMLElementm_field
 
PString m_value
 
GrammarState m_state
 
PTimeInterval m_timeout
 
PTimer m_timer
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Additional Inherited Members

- Static Public Member Functions inherited from PObject
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject *from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject *from)
 
static __inline const char * Class ()
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
template<typename T >
static Comparison Compare2 (T v1, T v2)
 Compare two types, returning Comparison type. More...
 
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 

Member Enumeration Documentation

Enumerator
Idle 

Not yet started.

Started 

Grammar awaiting input.

Filled 

got something that matched the grammar

NoInput 

timeout or still waiting to match

NoMatch 

recognized something but didn't match the grammar

Help 

help keyword

Constructor & Destructor Documentation

PVXMLGrammar::PVXMLGrammar ( PVXMLSession session,
PXMLElement field 
)

Member Function Documentation

GrammarState PVXMLGrammar::GetState ( ) const
inline

References m_state.

virtual bool PVXMLGrammar::IsFilled ( )
inlineprotectedvirtual

Reimplemented in PVXMLDigitsGrammar.

virtual void PVXMLGrammar::OnUserInput ( const char  ch)
pure virtual

Implemented in PVXMLDigitsGrammar, and PVXMLMenuGrammar.

PVXMLGrammar::PDECLARE_MUTEX ( m_mutex  )
protected
PVXMLGrammar::PDECLARE_NOTIFIER ( PTimer  ,
PVXMLGrammar  ,
OnTimeout   
)
protected
virtual bool PVXMLGrammar::Process ( )
virtual

Reimplemented in PVXMLMenuGrammar.

void PVXMLGrammar::SetIdle ( )
inline

References Idle, and m_state.

void PVXMLGrammar::SetSessionTimeout ( )
void PVXMLGrammar::SetTimeout ( const PTimeInterval timeout)
virtual void PVXMLGrammar::Start ( )
virtual

Member Data Documentation

PXMLElement& PVXMLGrammar::m_field
protected
PVXMLSession& PVXMLGrammar::m_session
protected
GrammarState PVXMLGrammar::m_state
protected

Referenced by GetState(), and SetIdle().

PTimeInterval PVXMLGrammar::m_timeout
protected
PTimer PVXMLGrammar::m_timer
protected
PString PVXMLGrammar::m_value
protected

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