# Driver Class Reference

A Channel driver module. More...

`#include <yatephone.h>`

Inheritance diagram for Driver:

List of all members.

## Public Member Functions

virtual void * | getObject (const String &name) const
const String & | prefix () const
bool | varchan () const
ObjList & | channels ()
virtual Channel * | find (const String &id) const
virtual bool | isBusy () const
virtual void | dropAll (Message &msg)
virtual bool | canAccept (bool routers=true)
virtual bool | canRoute ()
unsigned int | nextid ()
unsigned int | lastid () const
int | timeout () const
int | routing () const
int | routed () const
int | total () const

## Protected Member Functions

| Driver (const char *name, const char *type=0)
virtual void | initialize ()
void | setup (const char *prefix=0, bool minimal=false)
virtual bool | received (Message &msg, int id)
virtual void | genUpdate (Message &msg)
virtual bool | msgExecute (Message &msg, String &dest)=0
virtual bool | commandComplete (Message &msg, const String &partLine, const String &partWord)
virtual void | statusModule (String &str)
virtual void | statusParams (String &str)
virtual void | statusDetail (String &str)
virtual bool | setDebug (Message &msg, const String &target)
virtual void | loadLimits ()
void | varchan (bool variable)
void | timeout (int tout)
void | maxRoute (int ncalls)
void | maxChans (int ncalls)

## Friends

class | Router
class | Channel

## Detailed Description

A Channel driver module.

Driver is a module specialized for implementing channel drivers

## Constructor & Destructor Documentation

Driver | ( | const char * | name,
|  | const char * | type = `0` |
| ) |  |  | `[protected]`

Constructor

Parameters:

  | name | Plugin name of this driver
  | type | Type of the driver: "fixchans", "varchans", etc.

## Member Function Documentation

virtual void* getObject | ( | const String & | name | ) | const`[virtual]`

Get a pointer to a derived class given that class name

Parameters:

  | name | Name of the class we are asking for

Returns:
  Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from Module.

const String& prefix | ( |  | ) | const`[inline]`

Retrive the prefix that is used as base for all channels

Returns:
  The driver's prefix

bool varchan | ( |  | ) | const`[inline]`

Check if this driver is for dynamic (variable number) channels

Returns:
  True if the channels are dynamic, false for fixed

ObjList& channels | ( |  | ) | `[inline]`

Get the list of channels of this driver

Returns:
  A reference to the channel list

virtual Channel* find | ( | const String & | id | ) | const`[virtual]`

Find a channel by id

Parameters:

  | id | Unique identifier of the channel to find

Returns:
  Pointer to the channel or NULL if not found

virtual bool isBusy | ( |  | ) | const`[virtual]`

Check if the driver is actively used.

Returns:
  True if the driver is in use, false if should be ok to restart

Reimplemented from Plugin.

virtual void dropAll | ( | Message & | msg | ) | `[virtual]`

Drop all current channels

Parameters:

  | msg | Notification message

virtual bool canAccept | ( | bool | routers = `true` | ) | `[virtual]`

Check if new connections can be accepted

Parameters:

  | routers | Set to true to check routing threads for incoming connections

Returns:
  True if at least one new connection can be accepted, false if not

virtual bool canRoute | ( |  | ) | `[virtual]`

Check if new incoming connections can be routed

Returns:
  True if at least one new connection can be routed, false if not

unsigned int nextid | ( |  | ) |

Get the next unique numeric id from a sequence

Returns:
  A driver unique number that increments by 1 at each call

unsigned int lastid | ( |  | ) | const`[inline]`

Get the current (last used) unique numeric id from a sequence

Returns:
  The driver unique number

int timeout | ( |  | ) | const`[inline]`

Get the default driver timeout

Returns:
  Timeout value in milliseconds

int routing | ( |  | ) | const`[inline]`

Get the number of calls currently in the routing stage

Returns:
  Number of router threads currently running

int routed | ( |  | ) | const`[inline]`

Get the number of calls successfully routed

Returns:
  Number of calls that have gone past the routing stage

int total | ( |  | ) | const`[inline]`

Get the total number of calls ever created

Returns:
  Number of channels ever created for this driver

virtual void initialize | ( |  | ) | `[protected, virtual]`

This method is called to initialize the loaded module

Reimplemented from Module.

Reimplemented in ClientDriver.

void setup | ( | const char * | prefix = `0`,
|  | bool | minimal = `false` |
| ) |  |  | `[protected]`

Install standard message relays and set up the prefix

Parameters:

  | prefix | Prefix to use with channels of this driver
  | minimal | Install just a minimal set of message relays

virtual bool received | ( | Message & | msg,
|  | int | id |
| ) |  |  | `[protected, virtual]`

Message receiver handler

Parameters:

  | msg | The received message
  | id | The identifier with which the relay was created

Returns:
  True to stop processing, false to try other handlers

Reimplemented from Module.

virtual void genUpdate | ( | Message & | msg | ) | `[protected, virtual]`

Opportunity to modify the update message

Parameters:

  | msg | Status update message

Reimplemented from Module.

virtual bool msgExecute | ( | Message & | msg,
|  | String & | dest |
| ) |  |  | `[protected, pure virtual]`

Create an outgoing calling channel

Parameters:

  | msg | Call execute message
  | dest | Destination of the new call

Returns:
  True if outgoing call was created

Implemented in ClientDriver.

virtual bool commandComplete | ( | Message & | msg,
|  | const String & | partLine,
|  | const String & | partWord |
| ) |  |  | `[protected, virtual]`

Complete a command line

Parameters:

  | msg | Message to return completion into
  | partLine | Partial line to complete, excluding the last word
  | partWord | Partial word to complete

Returns:
  True to stop processing the message, false to try other handlers

Reimplemented from Module.

virtual void statusModule | ( | String & | str | ) | `[protected, virtual]`

Build the module identification part of the status answer

Parameters:

  | str | String variable to fill up

Reimplemented from Module.

virtual void statusParams | ( | String & | str | ) | `[protected, virtual]`

Build the parameter reporting part of the status answer

Parameters:

  | str | String variable to fill up

Reimplemented from Module.

virtual void statusDetail | ( | String & | str | ) | `[protected, virtual]`

Build the channel list part of the status answer

Parameters:

  | str | String variable to fill up

Reimplemented from Module.

virtual bool setDebug | ( | Message & | msg,
|  | const String & | target |
| ) |  |  | `[protected, virtual]`

Set the local debugging level

Parameters:

  | msg | Debug setting message
  | target | String to match for local settings

Reimplemented from Module.

virtual void loadLimits | ( |  | ) | `[protected, virtual]`

Load the global limits from the main config file

void varchan | ( | bool | variable | ) | `[inline, protected]`

Set if this driver is for dynamic (variable number) channels

Parameters:

  | variable | True if the channels are dynamic, false for fixed

void timeout | ( | int | tout | ) | `[inline, protected]`

Set the default driver timeout

Parameters:

  | tout | New timeout in milliseconds or zero to disable

void maxRoute | ( | int | ncalls | ) | `[inline, protected]`

Set the maximum number of routing messages for this driver

Parameters:

  | ncalls | Number of calls to route simultaneously, zero to accept all

void maxChans | ( | int | ncalls | ) | `[inline, protected]`

Set the maximum number of running channels for this driver

Parameters:

  | ncalls | Number of calls to run simultaneously, zero to accept all

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

- yatephone.h