Client Class Reference

Thread that runs the User Interface. More...

#include <yatecbase.h>

Inheritance diagram for Client:

Thread MessageReceiver Runnable GenObject

List of all members.

Public Types

enum  MsgID {
  CallCdr = 0, UiAction, UserLogin, UserNotify,
  ResourceNotify, ResourceSubscribe, ClientChanUpdate, UserRoster,
  ContactInfo, ChanNotify, MucRoom, MsgExecute,
  EngineStart, TransferNotify, UserData, MsgIdCount
}
enum  ClientToggle {
  OptMultiLines = 0, OptAutoAnswer, OptRingIn, OptRingOut,
  OptActivateLastOutCall, OptActivateLastInCall, OptActivateCallOnSelect, OptKeypadVisible,
  OptOpenIncomingUrl, OptAddAccountOnStartup, OptDockedChat, OptDestroyChat,
  OptNotifyChatState, OptCount
}
enum  TrayIconType {
  TrayIconMain = 0, TrayIconInfo = 1000, TrayIconIncomingChat = 3000, TrayIconNotification = 5000,
  TrayIconIncomingCall = 10000
}

Public Member Functions

 Client (const char *name=0)
virtual ~Client ()
virtual void run ()
virtual void cleanup ()
virtual void main ()=0
virtual void lock ()=0
virtual void unlock ()=0
void lockOther ()
void unlockOther ()
virtual void allHidden ()=0
void loadUI (const char *file=0, bool init=true)
virtual void quit ()=0
bool openUrlSafe (const String &url)
virtual bool openUrl (const String &url)=0
virtual bool received (Message &msg, int id)
virtual bool createWindowSafe (const String &name, const String &alias=String::empty())
virtual bool createDialog (const String &name, Window *parent, const String &title, const String &alias=String::empty(), const NamedList *params=0)
virtual bool createObject (void **dest, const String &type, const char *name, NamedList *params=0)
virtual bool closeWindow (const String &name, bool hide=true)
virtual bool closeDialog (const String &name, Window *wnd, Window *skip=0)
virtual bool debugHook (bool active)
virtual bool addToLog (const String &text)
virtual bool setStatus (const String &text, Window *wnd=0)
bool setStatusLocked (const String &text, Window *wnd=0)
bool setParams (const NamedList *params, Window *wnd=0, Window *skip=0)
virtual bool action (Window *wnd, const String &name, NamedList *params=0)
virtual bool toggle (Window *wnd, const String &name, bool active)
virtual bool select (Window *wnd, const String &name, const String &item, const String &text=String::empty())
bool oneThread () const
int line () const
void line (int newLine)
bool hasElement (const String &name, Window *wnd=0, Window *skip=0)
bool setActive (const String &name, bool active, Window *wnd=0, Window *skip=0)
bool setFocus (const String &name, bool select=false, Window *wnd=0, Window *skip=0)
bool setShow (const String &name, bool visible, Window *wnd=0, Window *skip=0)
bool setText (const String &name, const String &text, bool richText=false, Window *wnd=0, Window *skip=0)
bool setCheck (const String &name, bool checked, Window *wnd=0, Window *skip=0)
bool setSelect (const String &name, const String &item, Window *wnd=0, Window *skip=0)
bool setUrgent (const String &name, bool urgent, Window *wnd=0, Window *skip=0)
bool hasOption (const String &name, const String &item, Window *wnd=0, Window *skip=0)
virtual bool getOptions (const String &name, NamedList *items, Window *wnd=0, Window *skip=0)
bool addOption (const String &name, const String &item, bool atStart, const String &text=String::empty(), Window *wnd=0, Window *skip=0)
bool delOption (const String &name, const String &item, Window *wnd=0, Window *skip=0)
bool addLines (const String &name, const NamedList *lines, unsigned int max, bool atStart=false, Window *wnd=0, Window *skip=0)
bool addTableRow (const String &name, const String &item, const NamedList *data=0, bool atStart=false, Window *wnd=0, Window *skip=0)
bool setMultipleRows (const String &name, const NamedList &data, const String &prefix=String::empty(), Window *wnd=0, Window *skip=0)
bool insertTableRow (const String &name, const String &item, const String &before, const NamedList *data=0, Window *wnd=0, Window *skip=0)
bool delTableRow (const String &name, const String &item, Window *wnd=0, Window *skip=0)
bool setTableRow (const String &name, const String &item, const NamedList *data, Window *wnd=0, Window *skip=0)
bool getTableRow (const String &name, const String &item, NamedList *data=0, Window *wnd=0, Window *skip=0)
bool clearTable (const String &name, Window *wnd=0, Window *skip=0)
bool updateTableRow (const String &name, const String &item, const NamedList *data=0, bool atStart=false, Window *wnd=0, Window *skip=0)
bool updateTableRows (const String &name, const NamedList *data, bool atStart=false, Window *wnd=0, Window *skip=0)
bool getText (const String &name, String &text, bool richText=false, Window *wnd=0, Window *skip=0)
bool getCheck (const String &name, bool &checked, Window *wnd=0, Window *skip=0)
bool getSelect (const String &name, String &item, Window *wnd=0, Window *skip=0)
bool buildMenu (const NamedList &params, Window *wnd=0, Window *skip=0)
bool removeMenu (const NamedList &params, Window *wnd=0, Window *skip=0)
virtual bool setImage (const String &name, const String &image, Window *wnd=0, Window *skip=0)
virtual bool setProperty (const String &name, const String &item, const String &value, Window *wnd=0, Window *skip=0)
virtual bool getProperty (const String &name, const String &item, String &value, Window *wnd=0, Window *skip=0)
void moveRelated (const Window *wnd, int dx, int dy)
bool initialized () const
void idleActions ()
bool postpone (const Message &msg, int id, bool copyUserData=false)
virtual bool chooseFile (Window *parent, NamedList &params)
virtual bool setClientParam (const String &param, const String &value, bool save, bool update)
virtual bool backspace (const String &name, Window *wnd=0)
void installRelay (const char *name, int id, int prio)
virtual bool callRouting (Message &msg)
virtual bool imRouting (Message &msg)
virtual bool imExecute (Message &msg)
virtual bool buildIncomingChannel (Message &msg, const String &dest)
virtual bool buildOutgoingChannel (NamedList &params)
bool callIncoming (Message &msg, const String &dest)
void callAnswer (const String &id, bool setActive=true)
void callTerminate (const String &id, const char *reason=0, const char *error=0)
ClientChannelgetActiveChannel ()
virtual bool ringer (bool in, bool on)
virtual bool createSound (const char *name, const char *file, const char *device=0)
bool emitDigits (const char *digits, const String &id=String::empty())
bool emitDigit (char digit, const String &id=String::empty())
bool getBoolOpt (ClientToggle toggle)
bool setBoolOpt (ClientToggle toggle, bool value, bool updateUi=false)
virtual bool formatDateTime (String &dest, unsigned int secs, const char *format, bool utc=false)

Static Public Member Functions

static Clientself ()
static bool valid ()
static bool isClientMsg (Message &msg)
static bool changing ()
static WindowgetWindow (const String &name)
static bool setVisible (const String &name, bool show=true, bool activate=false)
static bool getVisible (const String &name)
static bool openPopup (const String &name, const NamedList *params=0, const Window *parent=0)
static bool openMessage (const char *text, const Window *parent=0, const char *context=0)
static bool openConfirm (const char *text, const Window *parent=0, const char *context=0)
static ObjListlistWindows ()
static bool exiting ()
static bool getActive (const String &name)
static MessagebuildMessage (const char *msg, const String &account, const char *oper=0)
static MessagebuildNotify (bool online, const String &account, const ClientResource *from=0)
static MessagebuildSubscribe (bool request, bool ok, const String &account, const String &contact, const char *proto=0)
static MessagebuildUserRoster (bool update, const String &account, const String &contact, const char *proto=0)
static bool addLogic (ClientLogic *logic)
static void removeLogic (ClientLogic *logic)
static ClientLogicfindLogic (const String &name)
static MessageeventMessage (const String &event, Window *wnd=0, const char *name=0, NamedList *params=0)
static bool save (Configuration &cfg, Window *parent=0, bool showErr=true)
static ClientToggle getBoolOpt (const String &name)
static void setLogicsTick ()
static void appendEscape (String &buf, ObjList &list, char sep= ',', bool force=false)
static ObjListsplitUnescape (const String &buf, char sep= ',', bool emptyOk=false)
static void removeChars (String &buf, const char *chars)
static void fixPhoneNumber (String &number, const char *chars=0)
static bool addTrayIcon (const String &wndName, int prio, NamedList *params)
static bool removeTrayIcon (const String &wndName, const String &name)
static bool updateTrayIcon (const String &wndName)
static void generateGuid (String &buf, const String &extra=String::empty())
static void plain2html (String &buf, bool spaceEol=false)

Static Public Attributes

static Configuration s_settings
static Configuration s_actions
static Configuration s_accounts
static Configuration s_contacts
static Configuration s_providers
static Configuration s_history
static Configuration s_calltoHistory
static Regexp s_notSelected
static Regexp s_guidRegexp
static String s_skinPath
static String s_soundPath
static String s_ringInName
static String s_ringOutName
static String s_statusWidget
static String s_debugWidget
static String s_toggles [OptCount]
static bool s_engineStarted

Protected Member Functions

virtual ClientLogiccreateDefaultLogic ()
virtual bool createWindow (const String &name, const String &alias=String::empty())=0
virtual void loadWindows (const char *file=0)=0
virtual void initWindows ()
virtual void initClient ()
virtual void exitClient ()
bool needProxy () const
bool driverLockLoop ()

Static Protected Member Functions

static bool driverLock (long maxwait=0)
static void driverUnlock ()

Protected Attributes

ObjList m_windows
bool m_initialized
int m_line
bool m_oneThread
bool m_toggles [OptCount]
ObjList m_relays
ClientLogicm_defaultLogic

Static Protected Attributes

static bool s_exiting
static Clients_client
static int s_changing
static ObjList s_logics
static bool s_idleLogicsTick

Friends

class Window
class ClientChannel
class ClientDriver
class ClientLogic


Detailed Description

Thread that runs the User Interface.

Singleton class that holds the User Interface's main thread and methods


Member Enumeration Documentation

enum MsgID

Message relays installed by this receiver.

Client boolean options mapped to UI toggles

Tray icon valuers used in stack


Constructor & Destructor Documentation

Client ( const char *  name = 0  )  [explicit]

Constructor

Parameters:
name The client's name

virtual ~Client (  )  [virtual]

Destructor


Member Function Documentation

virtual void run (  )  [virtual]

Run the client's thread

Implements Runnable.

virtual void cleanup (  )  [virtual]

Cleanup when thread terminates

Reimplemented from Thread.

virtual void main (  )  [pure virtual]

Execute the client

virtual void lock (  )  [pure virtual]

Lock the client

virtual void unlock (  )  [pure virtual]

Unlock the client

void lockOther (  )  [inline]

Lock the client only if we are using more then 1 thread

void unlockOther (  )  [inline]

Unlock the client only if we are using more then 1 thread

virtual void allHidden (  )  [pure virtual]

Handle all windows closed event from UI

void loadUI ( const char *  file = 0,
bool  init = true 
)

Load windows and optionally (re)initialize the client's options.

Parameters:
file The resource file describing the windows. Set to 0 to use the default one
init True to (re)initialize the client

virtual void quit (  )  [pure virtual]

Terminate application

bool openUrlSafe ( const String url  ) 

Open an URL (link) in the client's thread

Parameters:
url The URL to open
Returns:
True on success

virtual bool openUrl ( const String url  )  [pure virtual]

Open an URL (link)

Parameters:
url The URL to open
Returns:
True on success

virtual bool received ( Message msg,
int  id 
) [virtual]

Process a received message. Check for a logic to process it

Parameters:
msg Received message
id Message id
Returns:
True if a logic processed the message (stop dispatching it)

Implements MessageReceiver.

virtual bool createWindowSafe ( const String name,
const String alias = String::empty() 
) [virtual]

Create a window with a given name

Parameters:
name The window's name
alias Window name alias after succesfully loaded. Set to empty string to use the given name
Returns:
True on success

virtual bool createDialog ( const String name,
Window parent,
const String title,
const String alias = String::empty(),
const NamedList params = 0 
) [virtual]

Create a modal dialog owned by a given window

Parameters:
name Dialog name (resource config section)
parent Parent window
title Dialog title
alias Optional dialog alias (used as dialog object name)
params Optional dialog parameters
Returns:
True on success

virtual bool createObject ( void **  dest,
const String type,
const char *  name,
NamedList params = 0 
) [virtual]

Ask to an UI factory to create an object in the UI's thread

Parameters:
dest Destination to be filled with the newly create object's address
type Object's type
name Object's name
params Optional object parameters
Returns:
True on success

virtual bool closeWindow ( const String name,
bool  hide = true 
) [virtual]

Hide/destroy a window with a given name

Parameters:
name The window's name
hide True to hide, false to close
Returns:
True on success

virtual bool closeDialog ( const String name,
Window wnd,
Window skip = 0 
) [virtual]

Destroy a modal dialog

Parameters:
name Dialog name
wnd Window owning the dialog
skip Optional window to skip if wnd is null
Returns:
True on success

virtual bool debugHook ( bool  active  )  [virtual]

Install/uninstall a debugger output hook

Parameters:
active True to install, false to uninstall the hook
Returns:
True on success

virtual bool addToLog ( const String text  )  [virtual]

Add a log line

Parameters:
text Text to add
Returns:
True on success

virtual bool setStatus ( const String text,
Window wnd = 0 
) [virtual]

Set the status text

Parameters:
text Status text
wnd Optional window owning the status control
Returns:
True on success

bool setStatusLocked ( const String text,
Window wnd = 0 
)

Set the status text safely

Parameters:
text Status text
wnd Optional window owning the status control
Returns:
True on success

bool setParams ( const NamedList params,
Window wnd = 0,
Window skip = 0 
)

Set multiple window parameters

Parameters:
params The parameter list
wnd Optional window whose params are to be set
skip Optional window to skip if wnd is 0
Returns:
True on success

virtual bool action ( Window wnd,
const String name,
NamedList params = 0 
) [virtual]

Handle actions from user interface. Enqueue an ui.event message if the action is not handled by a client logic

Parameters:
wnd The window in which the user did something
name The action's name
params Optional action parameters
Returns:
True if the action was handled by a client logic

virtual bool toggle ( Window wnd,
const String name,
bool  active 
) [virtual]

Handle actions from checkable widgets. Enqueue an ui.event message if the action is not handled by a client logic

Parameters:
wnd The window in which the user did something
name The object's name
active Object's state
Returns:
True if the action was handled by a client logic

virtual bool select ( Window wnd,
const String name,
const String item,
const String text = String::empty() 
) [virtual]

Handle 'select' actions from user interface. Enqueue an ui.event message if the action is not handled by a client logic

Parameters:
wnd The window in which the user selected the object
name The action's name
item Item identifying the selection
text Selection's text
Returns:
True if the action was handled by a client logic

bool oneThread (  )  const [inline]

Check if the client is using more then 1 thread

Returns:
True if the client is using more then 1 thread

int line (  )  const [inline]

Get the currently selected line

Returns:
The selected line

void line ( int  newLine  ) 

Set the selected line

Parameters:
newLine The selected line

virtual bool getOptions ( const String name,
NamedList items,
Window wnd = 0,
Window skip = 0 
) [virtual]

Get an element's items

Parameters:
name Name of the element to search for
items List to fill with element's items
wnd Optional window owning the element
skip Optional window to skip when searching for the element
Returns:
True if the element exists

bool addLines ( const String name,
const NamedList lines,
unsigned int  max,
bool  atStart = false,
Window wnd = 0,
Window skip = 0 
)

Append or insert text lines to a widget

Parameters:
name The name of the widget
lines List containing the lines
max The maximum number of lines allowed to be displayed. Set to 0 to ignore
atStart True to insert, false to append
wnd Optional window owning the widget
skip Optional window to skip if wnd is 0
Returns:
True on success

bool setMultipleRows ( const String name,
const NamedList data,
const String prefix = String::empty(),
Window wnd = 0,
Window skip = 0 
)

Append or update several table rows at once

Parameters:
name Name of the element
data Parameters to initialize the rows with
prefix Prefix to match (and remove) in parameter names
wnd Optional window owning the element
skip Optional window to skip if wnd is 0
Returns:
True if all the operations were successfull

bool insertTableRow ( const String name,
const String item,
const String before,
const NamedList data = 0,
Window wnd = 0,
Window skip = 0 
)

Insert a row into a table owned by this window

Parameters:
name Name of the element
item Name of the item to insert
before Name of the item to insert before
data Table's columns to set
wnd Optional window owning the element
skip Optional window to skip if wnd is 0
Returns:
True if the operation was successfull

bool updateTableRow ( const String name,
const String item,
const NamedList data = 0,
bool  atStart = false,
Window wnd = 0,
Window skip = 0 
)

Set a table row or add a new one if not found

Parameters:
name Name of the element
item Table item to set/add
data Optional list of parameters used to set row data
atStart True to add item at start, false to add them to the end
wnd Optional window owning the element
skip Optional window to skip if wnd is 0
Returns:
True if the operation was successfull

bool updateTableRows ( const String name,
const NamedList data,
bool  atStart = false,
Window wnd = 0,
Window skip = 0 
)

Add or set one or more table row(s). Screen update is locked while changing the table. Each data list element is a NamedPointer carrying a NamedList with item parameters. The name of an element is the item to update. Set element's value to boolean value 'true' to add a new item if not found or 'false' to set an existing one. Set it to empty string to delete the item

Parameters:
name Name of the table
data The list of items to add/set/delete
atStart True to add new items at start, false to add them to the end
wnd Optional window owning the element
skip Optional window to skip if wnd is 0
Returns:
True if the operation was successfull

bool getText ( const String name,
String text,
bool  richText = false,
Window wnd = 0,
Window skip = 0 
)

Get an element's text

Parameters:
name Name of the element
text The destination string
richText True to get the element's roch text if supported.
wnd Optional window owning the element
skip Optional window to skip if wnd is 0
Returns:
True if the operation was successfull

bool buildMenu ( const NamedList params,
Window wnd = 0,
Window skip = 0 
)

Build a menu from a list of parameters and add it to a target.

Parameters:
params Menu build parameters (list name is the menu name). Each menu item is indicated by a parameter item:[item_name]=[display_text]. A separator will be added if 'item_name' is empty. A new item will be created if 'display_text' is not empty. Set 'display_text' to empty string to use an existing item. Item image can be set by an 'image:item_name' parameter. If the item parameter is a NamedPointer carrying a NamedList a submenu will be created. Menu item properties can be set from parameters with format property:item_name:property_name=value. The following parameters can be set:
  • title: menu display text (defaults to menu name)
  • owner: optional menu owner (the window building the menu is assumed to be the owner if this parameter is empty)
  • target: optional menu target (defaults to owner)
  • before: optional item to insert before if the target is a menu container (another menu or a menu bar)
  • before_separator: check if a separator already exists before the item 'before' and insert the menu before the separator
wnd Optional target window
skip Optional window to skip if wnd is 0
Returns:
True on success

bool removeMenu ( const NamedList params,
Window wnd = 0,
Window skip = 0 
)

Remove a menu (from UI and memory)

Parameters:
params Menu remove parameters. The following parameters can be set:
  • owner: optional menu owner (the window building the menu is assumed to be the owner if this parameter is empty)
wnd Optional target window
skip Optional window to skip if wnd is 0
Returns:
True on success

virtual bool setImage ( const String name,
const String image,
Window wnd = 0,
Window skip = 0 
) [virtual]

Set an element's image

Parameters:
name Name of the element
image Image to set
wnd Optional target window
skip Optional window to skip if wnd is 0
Returns:
True on success

virtual bool setProperty ( const String name,
const String item,
const String value,
Window wnd = 0,
Window skip = 0 
) [virtual]

Set a property

Parameters:
name Name of the element
item Property's name
value Property's value
wnd Optional target window
skip Optional window to skip if wnd is 0
Returns:
True on success

virtual bool getProperty ( const String name,
const String item,
String value,
Window wnd = 0,
Window skip = 0 
) [virtual]

Get a property

Parameters:
name Name of the element
item Property's name
value Property's value
wnd Optional target window
skip Optional window to skip if wnd is 0
Returns:
True on success

static bool valid (  )  [inline, static]

Check if the client object still exists and the client or engine is not exiting

Returns:
True if the client is valid (running) or the method is called from client's thread

References Thread::current(), and Engine::exiting().

static bool isClientMsg ( Message msg  )  [static]

Check if a message is sent by the client

Parameters:
msg The message to check
Returns:
True if the message has a 'module' parameter with the client driver's name

bool postpone ( const Message msg,
int  id,
bool  copyUserData = false 
)

Postpone a copy of a message to be dispatched from the UI thread

Parameters:
msg Message to be postponed
id Identifier of the message to be used on dispatch
copyUserData Copy source user data in postponed message
Returns:
True if the UI thread was not current so the message was postponed

virtual bool chooseFile ( Window parent,
NamedList params 
) [inline, virtual]

Show a file open/save dialog window This method isn't using the proxy thread since it's usually called on UI action

Parameters:
parent Dialog window's parent
params Dialog window's params. Parameters that can be specified include 'caption', 'dir', 'filters', 'selectedfilter', 'confirmoverwrite', 'choosedir'.
Returns:
True on success

virtual bool setClientParam ( const String param,
const String value,
bool  save,
bool  update 
) [virtual]

Request to a logic to set a client's parameter. Save the settings file and/or update interface

Parameters:
param Parameter's name
value The value of the parameter
save True to save the configuration file
update True to update the interface
Returns:
True on success, false if the parameter doesn't exist, the value is incorrect or failed to save the file

virtual bool backspace ( const String name,
Window wnd = 0 
) [virtual]

Remove the last character of the given widget

Parameters:
name The widget (it might be the window itself)
wnd Optional window containing the widget that triggered the action
Returns:
True on success

void installRelay ( const char *  name,
int  id,
int  prio 
)

Create and install a message relay owned by this client. The new relay will be unistalled when the client is terminated

Parameters:
name Message name
id Relay id
prio Message priority

virtual bool callRouting ( Message msg  )  [inline, virtual]

Call routing handler called by the driver

Parameters:
msg The call.route message

virtual bool imRouting ( Message msg  )  [inline, virtual]

IM message routing handler called by the driver

Parameters:
msg The im.route message

virtual bool imExecute ( Message msg  )  [virtual]

Process an IM message

Parameters:
msg The im.execute of chan.text message

virtual bool buildIncomingChannel ( Message msg,
const String dest 
) [virtual]

Build an incoming channel. Answer it if succesfully connected and auto answer is set. Reject it if multiline is false and the driver is busy. Set the active one if requested by config and there is no active channel. Start the ringer if there is no active channel

Parameters:
msg The call.execute message
dest The destination (target)
Returns:
True if a channel was created and connected

virtual bool buildOutgoingChannel ( NamedList params  )  [virtual]

Build an outgoing channel

Parameters:
params Call parameters
Returns:
True if a channel was created its router started

bool callIncoming ( Message msg,
const String dest 
)

Call execute handler called by the driver. Ask the logics to create the channel

Parameters:
msg The call.execute message
dest The destination (target)
Returns:
True if a channel was created and connected

void callAnswer ( const String id,
bool  setActive = true 
)

Answer an incoming call

Parameters:
id The accepted channel's id
setActive True to activate the answered channel
Returns:
True on success

void callTerminate ( const String id,
const char *  reason = 0,
const char *  error = 0 
)

Terminate a call

Parameters:
id The channel's id
reason Optional termination reason
error Optional termination error
Returns:
True on success

ClientChannel* getActiveChannel (  ) 

Get the active channel if any

Returns:
Referenced pointer to the active channel or 0

virtual bool ringer ( bool  in,
bool  on 
) [virtual]

Start/stop ringer. The ringer is started only if not disabled

Parameters:
in True if the request is for the incoming call alert, false if it is for the outgoing call ringing alert
on True to start, false to stop the sound
Returns:
True on success

virtual bool createSound ( const char *  name,
const char *  file,
const char *  device = 0 
) [inline, virtual]

Create a sound object. Append it to the global list

Parameters:
name The name of sound object
file The file to play (should contain the whole path and the file name)
device Optional device used to play the file. Set to 0 to use the default one
Returns:
True on success, false if a sound with the given name already exists

bool emitDigits ( const char *  digits,
const String id = String::empty() 
)

Send digits on selected channel

Parameters:
digits The digits to send
id The channel id. Use the active one if empty
Returns:
True on success

bool emitDigit ( char  digit,
const String id = String::empty() 
) [inline]

Send a digit on selected channel

Parameters:
digit The digit to send
id The channel id. Use the active one if empty
Returns:
True on success

bool getBoolOpt ( ClientToggle  toggle  )  [inline]

Get a boolean option of this client

Parameters:
toggle Options's id to retrieve
Returns:
True on success

bool setBoolOpt ( ClientToggle  toggle,
bool  value,
bool  updateUi = false 
)

Set a boolean option of this client

Parameters:
toggle Options's id to set
value Value to set
updateUi True to update UI
Returns:
True if the option's value changed

virtual bool formatDateTime ( String dest,
unsigned int  secs,
const char *  format,
bool  utc = false 
) [inline, virtual]

Build a date/time string from UTC time

Parameters:
dest Destination string
secs Seconds since EPOCH
format Format string used to build the destination
utc True to build UTC time instead of local time
Returns:
True on success

static bool exiting (  )  [inline, static]

Check if the client is exiting

Returns:
True if the client therad is exiting

static bool getActive ( const String name  )  [static]

Retrieve the active state of a window

Parameters:
name Window name
Returns:
True if the window is found and it's active

static Message* buildMessage ( const char *  msg,
const String account,
const char *  oper = 0 
) [static]

Build a message to be sent by the client. Add module, line and operation parameters

Parameters:
msg Message name
account The account sending the message
oper Optional operation parameter
Returns:
Message pointer

Referenced by MucRoom::buildMucRoom().

static Message* buildNotify ( bool  online,
const String account,
const ClientResource from = 0 
) [static]

Build a resource.notify message

Parameters:
online True to build an 'online' message, false to build an 'offline' one
account The account sending the message
from Optional resource to add to message
Returns:
Message pointer

static Message* buildSubscribe ( bool  request,
bool  ok,
const String account,
const String contact,
const char *  proto = 0 
) [static]

Build a resource.subscribe or resource.notify message to request a subscription or respond to a request

Parameters:
request True to build a request, false to build a response
ok True to build a subscribe(d) message, false to build an unsubscribe(d) message
account The account to use for the message
contact The destination contact
proto Optional protocol
Returns:
Valid Message pointer

static Message* buildUserRoster ( bool  update,
const String account,
const String contact,
const char *  proto = 0 
) [static]

Build an user.roster message

Parameters:
update True to build an update, false to build a delete request
account The account to use for the message
contact The contact to update or delete
proto Optional protocol
Returns:
Valid Message pointer

static bool addLogic ( ClientLogic logic  )  [static]

Add a logic to the list. The added object is not owned by the client

Parameters:
logic Pointer to the logic to add
Returns:
True on success. False if the pointer is 0 or already added

static void removeLogic ( ClientLogic logic  )  [static]

Remove a logic from the list without destroying it

Parameters:
logic Pointer to the logic to remove

static ClientLogic* findLogic ( const String name  )  [static]

Convenience method to retrieve a logic

Parameters:
name The logic's name
Returns:
ClientLogic pointer or 0

static Message* eventMessage ( const String event,
Window wnd = 0,
const char *  name = 0,
NamedList params = 0 
) [static]

Build an 'ui.event' message

Parameters:
event Event's name
wnd Optional window to add to message
name Optional 'name' parameter value
params Other optional parameters to be added to the message
Returns:
Valid Message pointer

static bool save ( Configuration cfg,
Window parent = 0,
bool  showErr = true 
) [static]

Save a configuration file. Call openMessage() on failure

Parameters:
cfg The configuration file to save
parent The parent of the error window if needded
showErr True to open a message popup on failure
Returns:
True on success

static ClientToggle getBoolOpt ( const String name  )  [static]

Check if a string names a client's boolean option

Parameters:
name String to check
Returns:
Valid client option index or OptCount if not found

static void setLogicsTick (  )  [inline, static]

Set the flag indicating that the client should tick the logics

static void appendEscape ( String buf,
ObjList list,
char  sep = ',',
bool  force = false 
) [static]

Append URI escaped String items to a String buffer

Parameters:
buf Destination string
list Source list
sep Destination list separator. It will be escaped in each added string
force True to allow appending empty strings

static ObjList* splitUnescape ( const String buf,
char  sep = ',',
bool  emptyOk = false 
) [static]

Splits a string at a delimiter character. URI unescape each string in result

Parameters:
buf Source string
sep Character where to split the string. It will be unescaped in each string
emptyOk True if empty strings should be inserted in list
Returns:
A newly allocated list of strings, must be deleted after use

static void removeChars ( String buf,
const char *  chars 
) [static]

Remove characters from a given string

Parameters:
buf Source string
chars Characters to remove from input string

static void fixPhoneNumber ( String number,
const char *  chars = 0 
) [static]

Fix a phone number. Remove extra '+' from begining. Remove requested characters. Adding '+' to characters to remove won't remove the plus sign from the begining. Clear the number if a non digit char is found

Parameters:
number Phone number to fix
chars Optional characters to remove from number

static bool addTrayIcon ( const String wndName,
int  prio,
NamedList params 
) [static]

Add a tray icon to a window's stack. Update it if already there. Show it if it's the first one and the client is started. This method must be called from client's thread

Parameters:
wndName The window owning the icon
prio Tray icon priority. The list is kept in ascending order
params Tray icon parameters. It will be consumed
Returns:
True on success

static bool removeTrayIcon ( const String wndName,
const String name 
) [static]

Remove a tray icon from a window's stack. Show the next one if it's the first This method must be called from client's thread

Parameters:
wndName The window owning the icon
name Tray icon name
Returns:
True on success

static bool updateTrayIcon ( const String wndName  )  [static]

Update the first tray icon in a window's stack. Remove any existing icon the the stack is empty This method must be called from client's thread

Parameters:
wndName The window owning the icon
Returns:
True on success

static void generateGuid ( String buf,
const String extra = String::empty() 
) [static]

Generate a GUID string in the format 8*HEX-4*HEX-4*HEX-4*HEX-12*HEX

Parameters:
buf Destination string
extra Optional string whose hash will be inserted in the GUID

static void plain2html ( String buf,
bool  spaceEol = false 
) [static]

Replace plain text chars with HTML escape or markup

Parameters:
buf Destination string
spaceEol True to replace end of line with space instead of html markup

virtual ClientLogic* createDefaultLogic (  )  [protected, virtual]

Create the default logic The default implementation creates a DefaultLogic object

Returns:
ClientLogic pointer or 0


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

Generated on Sat May 28 18:28:23 2011 for Yate by  doxygen 1.5.6