OPAL Version 3.10.4

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Protected Types | Protected Member Functions | Protected Attributes
OpalPresentityWithCommandThread Class Reference

`#include <pres_ent.h>`

Inheritance diagram for OpalPresentityWithCommandThread:

## Public Member Functions

Overrides from OpalPresentity
virtual bool | SendCommand (OpalPresentityCommand *cmd)
new functions
void | StartThread (bool startQueue=true)
void | StopThread ()
void | StartQueue (bool startQueue=true)
Public Member Functions inherited from OpalPresentity
virtual void | SetAOR (const PURL &aor)
void | Internal_SendMessageToCommand (const OpalSendMessageToCommand &cmd)
virtual PString | GetID () const
virtual bool | Open ()=0
virtual bool | IsOpen () const =0
virtual bool | Close ()=0
| ~OpalPresentity ()
PStringOptions & | GetAttributes ()
| < Get the attributes for this presentity.
virtual PStringArray | GetAttributeNames () const =0
| Get all attribute types for this presentity class.
virtual PStringArray | GetAttributeTypes () const =0
const PURL & | GetAOR () const
virtual bool | SubscribeToPresence (const PURL &presentity, bool subscribe=true, const PString &note=PString::Empty())
virtual bool | UnsubscribeFromPresence (const PURL &presentity)
virtual bool | SetPresenceAuthorisation (const PURL &presentity, Authorisation authorisation)
virtual bool | SetLocalPresence (OpalPresenceInfo::State state, const PString &note=PString::Empty())
virtual bool | GetLocalPresence (OpalPresenceInfo::State &state, PString &note)
template<class cls >
__inline cls * | CreateCommand ()
virtual void | OnAuthorisationRequest (const AuthorisationRequest &request)
void | SetAuthorisationRequestNotifier (const AuthorisationRequestNotifier &notifier)
| Set the notifier for the OnAuthorisationRequest() function.
virtual void | OnPresenceChange (const OpalPresenceInfo &info)
void | SetPresenceChangeNotifier (const PresenceChangeNotifier &notifier)
| Set the notifier for the OnPresenceChange() function.
virtual BuddyStatus | GetBuddyListEx (BuddyList &buddies)
virtual bool | GetBuddyList (BuddyList &buddies)
virtual BuddyStatus | SetBuddyListEx (const BuddyList &buddies)
virtual bool | SetBuddyList (const BuddyList &buddies)
virtual BuddyStatus | DeleteBuddyListEx ()
virtual bool | DeleteBuddyList ()
virtual BuddyStatus | GetBuddyEx (BuddyInfo &buddy)
virtual bool | GetBuddy (BuddyInfo &buddy)
virtual BuddyStatus | SetBuddyEx (const BuddyInfo &buddy)
virtual bool | SetBuddy (const BuddyInfo &buddy)
virtual BuddyStatus | DeleteBuddyEx (const PURL &presentity)
virtual bool | DeleteBuddy (const PURL &presentity)
virtual BuddyStatus | SubscribeBuddyListEx (PINDEX &successfulCount, bool subscribe=true)
virtual bool | SubscribeBuddyList (bool subscribe=true)
virtual BuddyStatus | UnsubscribeBuddyListEx ()
virtual bool | UnsubscribeBuddyList ()
virtual bool | SendMessageTo (const OpalIM &message)
virtual void | OnReceivedMessage (const OpalIM &message)
void | SetReceivedMessageNotifier (const ReceivedMessageNotifier &notifier)
| Set the notifier for the OnPresenceChange() function.

## Protected Types

typedef std::queue < OpalPresentityCommand * > | CommandQueue

## Protected Member Functions

void | ThreadMain ()
Protected Member Functions inherited from OpalPresentity
OpalPresentityCommand * | InternalCreateCommand (const char *cmdName)
| OpalPresentity ()
| Construct the presentity class.
| OpalPresentity (const OpalPresentity &other)

## Protected Attributes

CommandQueue | m_commandQueue
PMutex | m_commandQueueMutex
PAtomicInteger | m_commandSequence
PSyncPoint | m_commandQueueSync
bool | m_threadRunning
bool | m_queueRunning
PThread * | m_thread
Protected Attributes inherited from OpalPresentity
OpalManager * | m_manager
PGloballyUniqueID | m_guid
PURL | m_aor
PStringOptions | m_attributes
AuthorisationRequestNotifier | m_onAuthorisationRequestNotifier
PresenceChangeNotifier | m_onPresenceChangeNotifier
ReceivedMessageNotifier | m_onReceivedMessageNotifier
PMutex | m_notificationMutex
PAtomicInteger::IntegerType | m_idNumber
bool | m_temporarilyUnavailable
OpalPresenceInfo::State | m_localState
| our presentity state
PString | m_localStateNote
| Additional note attached to the.

## Construction

| OpalPresentityWithCommandThread ()
| Construct the presentity class that uses a command thread.
| OpalPresentityWithCommandThread (const OpalPresentityWithCommandThread &other)
| ~OpalPresentityWithCommandThread ()

## Additional Inherited Members

enum | Authorisation { AuthorisationPermitted, AuthorisationDenied, AuthorisationDeniedPolitely, AuthorisationConfirming, AuthorisationRemove, NumAuthorisations }
| Authorisation modes for SetPresenceAuthorisation() More...
typedef PNotifierTemplate < const AuthorisationRequest & > | AuthorisationRequestNotifier
typedef PNotifierTemplate < const OpalPresenceInfo & > | PresenceChangeNotifier
enum | BuddyStatus { BuddyStatus_GenericFailure = -1, BuddyStatus_OK = 0, BuddyStatus_SpecifiedBuddyNotFound, BuddyStatus_ListFeatureNotImplemented, BuddyStatus_ListTemporarilyUnavailable, BuddyStatus_ListMayBeIncomplete, BuddyStatus_BadBuddySpecification, BuddyStatus_ListSubscribeFailed, BuddyStatus_AccountNotLoggedIn }
typedef std::list< BuddyInfo > | BuddyList
typedef PNotifierTemplate < const OpalIM & > | ReceivedMessageNotifier
static OpalPresentity * | Create (OpalManager &manager, const PURL &url, const PString &scheme=PString::Empty())
static const PCaselessString & | AuthNameKey ()
| Key for authentication name attribute.
static const PCaselessString & | AuthPasswordKey ()
| Key for authentication password attribute.
static const PCaselessString & | TimeToLiveKey ()
| Key for Time-To-Live attribute, in seconds for underlying protocol.

## Detailed Description

Representation of a presence identity that uses a background thread to process commands.

## Member Typedef Documentation

typedef std::queue<OpalPresentityCommand *> OpalPresentityWithCommandThread::CommandQueue

protected

## Constructor & Destructor Documentation

OpalPresentityWithCommandThread::OpalPresentityWithCommandThread | ( |  | ) |

protected

Construct the presentity class that uses a command thread.

OpalPresentityWithCommandThread::OpalPresentityWithCommandThread | ( | const OpalPresentityWithCommandThread & | other | ) |

protected

OpalPresentityWithCommandThread::~OpalPresentityWithCommandThread | ( |  | ) |

Destory the presentity class that uses a command thread. Note this will block until the background thread has stopped.

## Member Function Documentation

virtual bool OpalPresentityWithCommandThread::SendCommand | ( | OpalPresentityCommand * | cmd | ) |

virtual

Lowlevel function to send a command to the presentity handler. All commands are asynchronous. They will usually initiate an action for which an indication (callback) will give a result.

The default implementation queues the command for the background thread to handle.

Returns true if the command was queued. Note that this does not mean the command succeeded, only that the underlying protocol is processing commands, that is the backgrund thread is running

Parameters:

  cmd | Command to execute

Reimplemented from OpalPresentity.

void OpalPresentityWithCommandThread::StartQueue | ( | bool | startQueue = `true` | ) |

Start/resume processing of queue commands

void OpalPresentityWithCommandThread::StartThread | ( | bool | startQueue = `true` | ) |

Start the background thread to handle commands. This is typically called from the concrete classes Open() function.

If the argument is true (the default) then the thread starts processing queue entries ASAP.

If the argument is false, the thread is still created and still runs, but it does not process queue entries. This allows for presenties that may need to allow commands to be paused, for example during initialisation

void OpalPresentityWithCommandThread::StopThread | ( |  | ) |

Stop the background thread to handle commands. This is typically called from the concrete classes Close() function. It is also called fro the destructor to be sure the thread has stopped before the object is destroyed.

void OpalPresentityWithCommandThread::ThreadMain | ( |  | ) |

protected

## Field Documentation

CommandQueue OpalPresentityWithCommandThread::m_commandQueue

protected

PMutex OpalPresentityWithCommandThread::m_commandQueueMutex

protected

PSyncPoint OpalPresentityWithCommandThread::m_commandQueueSync

protected

PAtomicInteger OpalPresentityWithCommandThread::m_commandSequence

protected

bool OpalPresentityWithCommandThread::m_queueRunning

protected

PThread* OpalPresentityWithCommandThread::m_thread

protected

bool OpalPresentityWithCommandThread::m_threadRunning

protected

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

- pres_ent.h