ost::Bayonne Class Reference

Generic Bayonne master class to reference various useful data types and core static members used for locating resources found in libbayonne.Master bayonne library class. More...

#include <bayonne.h>

Inheritance diagram for ost::Bayonne:

ost::BayonneAudio ost::BayonneBinder ost::BayonneDriver ost::BayonneMsgport ost::BayonneSession ost::BayonneSpan ost::BayonneSysexec ost::BayonneTranslator ost::Libexec List of all members.

Public Types

typedef uint16_t timeslot_t
typedef bool(BayonneSession::* Handler )(Event *event)
 The current state handler in effect for a given channel to receive events.
enum  interface_t {
  IF_PSTN, IF_SPAN, IF_ISDN, IF_SS7,
  IF_INET, IF_NONE, IF_POTS = IF_PSTN
}
 Telephony endpoint interface identifiers. More...
enum  calltype_t {
  NONE, INCOMING, OUTGOING, PICKUP,
  FORWARDED, RECALL, DIRECT
}
 Type of call session being processed. More...
enum  bridge_t {
  BR_TDM, BR_INET, BR_SOFT, BR_GATE,
  BR_NONE
}
 Type of bridge used for joining ports. More...
enum  state_t {
  STATE_INITIAL = 0, STATE_IDLE, STATE_RESET, STATE_RELEASE,
  STATE_BUSY, STATE_DOWN, STATE_RING, STATE_PICKUP,
  STATE_SEIZE, STATE_STEP, STATE_EXEC, STATE_THREAD,
  STATE_CLEAR, STATE_INKEY, STATE_INPUT, STATE_READ,
  STATE_COLLECT, STATE_DIAL, STATE_XFER, STATE_HOLD,
  STATE_RECALL, STATE_TONE, STATE_DTMF, STATE_PLAY,
  STATE_RECORD, STATE_JOIN, STATE_WAIT, STATE_CONNECT,
  STATE_SLEEP, STATE_START, STATE_HANGUP, STATE_LIBRESET,
  STATE_WAITKEY, STATE_LIBWAIT, STATE_IRESET, STATE_FINAL,
  STATE_STANDBY = STATE_DOWN, STATE_LIBEXEC = STATE_EXEC, STATE_RINGING = STATE_RING, STATE_RUNNING = STATE_STEP,
  STATE_THREADING = STATE_THREAD
}
 Call processing states offered in core library. More...
enum  signal_t {
  SIGNAL_EXIT = 0, SIGNAL_ERROR, SIGNAL_TIMEOUT, SIGNAL_DTMF,
  SIGNAL_0, SIGNAL_1, SIGNAL_2, SIGNAL_3,
  SIGNAL_4, SIGNAL_5, SIGNAL_6, SIGNAL_7,
  SIGNAL_8, SIGNAL_9, SIGNAL_STAR, SIGNAL_POUND,
  SIGNAL_A, SIGNAL_OVERRIDE = SIGNAL_A, SIGNAL_B, SIGNAL_FLASH = SIGNAL_B,
  SIGNAL_C, SIGNAL_IMMEDIATE = SIGNAL_C, SIGNAL_D, SIGNAL_PRIORITY = SIGNAL_D,
  SIGNAL_RING, SIGNAL_TONE, SIGNAL_EVENT, SIGNAL_WINK,
  SIGNAL_CHILD, SIGNAL_FAIL, SIGNAL_PICKUP, SIGNAL_PART,
  SIGNAL_INVALID, SIGNAL_PARENT, SIGNAL_WAIT, SIGNAL_HANGUP = SIGNAL_EXIT
}
 Signaled interpreter events. More...
enum  event_t {
  MSGPORT_WAKEUP = 0, MSGPORT_SHUTDOWN, MSGPORT_LOGGING, MSGPORT_REGISTER,
  ENTER_STATE = 100, EXIT_STATE, EXIT_THREAD, EXIT_TIMER,
  EXIT_PARTING, NULL_EVENT, ERROR_STATE, START_DIRECT = 200,
  START_INCOMING, START_OUTGOING, START_RECALL, START_FORWARDED,
  STOP_SCRIPT, STOP_DISCONNECT, STOP_PARENT, CANCEL_CHILD,
  DETACH_CHILD, CHILD_RUNNING, CHILD_FAILED, CHILD_INVALID,
  CHILD_EXPIRED, CHILD_BUSY, CHILD_FAX, START_SCRIPT = START_INCOMING,
  START_SELECTED = START_OUTGOING, ENTER_LIBEXEC = 300, EXIT_LIBEXEC, HEAD_LIBEXEC,
  ARGS_LIBEXEC, GOT_LIBEXEC, READ_LIBEXEC, DROP_LIBEXEC,
  STAT_LIBEXEC, PROMPT_LIBEXEC, CLEAR_LIBEXEC, WAIT_LIBEXEC,
  RECORD_LIBEXEC, REPLAY_LIBEXEC, RESTART_LIBEXEC, TONE_LIBEXEC,
  XFER_LIBEXEC, POST_LIBEXEC, TIMER_EXPIRED = 400, LINE_WINK,
  LINE_PICKUP, LINE_HANGUP, LINE_DISCONNECT, LINE_ON_HOOK,
  LINE_OFF_HOOK, RING_ON, RING_OFF, RING_STOP,
  LINE_CALLER_ID, RINGING_DID, DEVICE_BLOCKED, DEVICE_UNBLOCKED,
  DEVICE_OPEN, DEVICE_CLOSE, DSP_READY, CALL_DETECT = 500,
  CALL_CONNECTED, CALL_RELEASED, CALL_ACCEPTED, CALL_ANSWERED,
  CALL_HOLD, CALL_HOLDING = CALL_HOLD, CALL_NOHOLD, CALL_DIGITS,
  CALL_OFFERED, CALL_ANI, CALL_ACTIVE, CALL_NOACTIVE,
  CALL_BILLING, CALL_RESTART, CALL_SETSTATE, CALL_FAILURE,
  CALL_ALERTING, CALL_INFO, CALL_BUSY, CALL_DIVERT,
  CALL_FACILITY, CALL_FRAME, CALL_NOTIFY, CALL_NSI,
  CALL_RINGING, CALL_DISCONNECT, CALL_CLEARED, RESTART_FAILED,
  RELEASE_FAILED, START_RING = 600, STOP_RING, CLEAR_TIMESLOT,
  START_FLASH, STOP_FLASH, DIAL_CONNECT, DIAL_TIMEOUT,
  DIAL_FAILED, DIAL_INVALID, DIAL_BUSY, DIAL_FAX,
  DIAL_PAM, DIAL_MACHINE = DIAL_PAM, AUDIO_IDLE = 700, AUDIO_ACTIVE,
  AUDIO_EXPIRED, INPUT_PENDING, OUTPUT_PENDING, AUDIO_BUFFER,
  TONE_IDLE, DTMF_KEYDOWN, DTMF_KEYSYNC, DTMF_KEYUP,
  TONE_START, TONE_STOP, AUDIO_START, AUDIO_STOP,
  DTMF_START, DTMF_STOP, MAKE_TEST = 800, MAKE_BUSY,
  MAKE_IDLE, MAKE_DOWN, MAKE_UP, MAKE_EXPIRED,
  ENABLE_LOGGING, DISABLE_LOGGING, PART_EXPIRED, PART_EXITING,
  PART_DISCONNECT, JOIN_PEER, PEER_WAITING, SYSTEM_DOWN = 900,
  DRIVER_SPECIFIC = 1000
}
 Primary event identifiers. More...
enum  result_t {
  RESULT_SUCCESS = 0, RESULT_TIMEOUT, RESULT_INVALID, RESULT_PENDING,
  RESULT_COMPLETE, RESULT_FAILED, RESULT_BADPATH = 254, RESULT_OFFLINE = 255
}

Static Public Member Functions

static const char * getKeypath (const char *cp)
static void allocate (timeslot_t timeslots, ScriptCommand *server=NULL)
 Allocates the maximum number of timeslots the server will use as a whole and attaches a given server to the library.
static void waitLoaded (void)
 Wait for live flag.
static unsigned long uptime (void)
 Get server uptime.
static ScriptCompiler * reload (void)
 Request active scripts to be recompiled from the library.
static void down (void)
 Used to down the server from the library.
static bool service (const char *svc)
 Sets server service level from the library.
static BayonneSessiongetSession (timeslot_t timeslot)
 Returns a session pointer for a server timeslot.
static BayonneSessiongetSid (const char *id)
 Returns a session pointer for a string identifier.
static timeslot_t toTimeslot (const char *id)
 Returns a server timeslot number for a string identifier.
static timeslot_t getTimeslotsUsed (void)
 Return total library timeslots used (highest used).
static timeslot_t getTimeslotCount (void)
 Return total timeslots allocated for the server.
static timeslot_t getAvailTimeslots (void)
 Return remaining timeslots available to allocate driver ports into.
static Handler getState (const char *name)
 Map a state name into a handler.
static int getDigit (char dig)
 Convert a dtmf character into a 0-15 number reference.
static char getChar (int dtmf)
 Convert a dtmf digit number into it's ascii code.
static bool matchDigits (const char *digits, const char *match, bool partial=false)
 A function to support pattern matching and templates for digit strings.
static ScriptImage * useImage (void)
 Use the current compiled script image; mark as in use.
static void endImage (ScriptImage *img)
 Release a script image in use.
static bool loadPlugin (const char *path)
 Load a plugin module.
static bool loadMonitor (const char *path)
 Load a monitoring/management module.
static bool loadAudio (const char *path)
 Load a bgm/audio processing module for continues audio.
static void errlog (const char *level, const char *fmt,...)

Static Public Attributes

static timeout_t step_timer
static timeout_t reset_timer
static timeout_t exec_timer
static unsigned compile_count
static volatile bool image_loaded
static bool provision_ripple
static bool provision_daemon
static bool provision_system
static bool provision_check
static bool provision_user
static bool provision_test
static const char * provision_server
static const char * provision_libexec
static Audio::Encoding peer_encoding
static Audio::timeout_t peer_framing
static BayonneTranslatorinit_translator
static const char * init_voicelib
static AtomicCounter libexec_count
static statetab states []
 Table of states ordered by id.
static Mutex serialize
 A mutex to serialize any direct console I/O operations.

Static Protected Attributes

static BayonneSession ** timeslots
static char * status
static ScriptCommand * server
static timeslot_t ts_count
static timeslot_t ts_used
static std::ostream * logging
static const char * path_prompts
static const char * path_tmpfs
static const char * path_tmp
static unsigned idle_count
static unsigned idle_limit
static bool shutdown_flag
static char sla []
static time_t start_time

Classes

struct  Event
 The event data structure includes the event identifier and any paramaters. More...
struct  libaudio_t
struct  State
 The primary state data structure. More...
struct  statetab
 A list of each state and a description. More...

Detailed Description

Generic Bayonne master class to reference various useful data types and core static members used for locating resources found in libbayonne.Master bayonne library class.

Author:
David Sugar <dyfet@gnutelephony.org>


Member Typedef Documentation

typedef bool(BayonneSession::* ost::Bayonne::Handler)(Event *event)
 

The current state handler in effect for a given channel to receive events.

This is done by a direct method pointer for fast processing.

typedef uint16_t ost::Bayonne::timeslot_t
 


Member Enumeration Documentation

enum ost::Bayonne::bridge_t
 

Type of bridge used for joining ports.

Enumerator:
BR_TDM 
BR_INET 
BR_SOFT 
BR_GATE 
BR_NONE 

enum ost::Bayonne::calltype_t
 

Type of call session being processed.

Enumerator:
NONE 
INCOMING 
OUTGOING 
PICKUP 
FORWARDED 
RECALL 
DIRECT 

enum ost::Bayonne::event_t
 

Primary event identifiers.

These are the events that can be passed into the Bayonne state machine. They are broken into categories.

Enumerator:
MSGPORT_WAKEUP 
MSGPORT_SHUTDOWN 
MSGPORT_LOGGING 
MSGPORT_REGISTER 
ENTER_STATE 
EXIT_STATE 
EXIT_THREAD 
EXIT_TIMER 
EXIT_PARTING 
NULL_EVENT 
ERROR_STATE 
START_DIRECT 
START_INCOMING 
START_OUTGOING 
START_RECALL 
START_FORWARDED 
STOP_SCRIPT 
STOP_DISCONNECT 
STOP_PARENT 
CANCEL_CHILD 
DETACH_CHILD 
CHILD_RUNNING 
CHILD_FAILED 
CHILD_INVALID 
CHILD_EXPIRED 
CHILD_BUSY 
CHILD_FAX 
START_SCRIPT 
START_SELECTED 
ENTER_LIBEXEC 
EXIT_LIBEXEC 
HEAD_LIBEXEC 
ARGS_LIBEXEC 
GOT_LIBEXEC 
READ_LIBEXEC 
DROP_LIBEXEC 
STAT_LIBEXEC 
PROMPT_LIBEXEC 
CLEAR_LIBEXEC 
WAIT_LIBEXEC 
RECORD_LIBEXEC 
REPLAY_LIBEXEC 
RESTART_LIBEXEC 
TONE_LIBEXEC 
XFER_LIBEXEC 
POST_LIBEXEC 
TIMER_EXPIRED 
LINE_WINK 
LINE_PICKUP 
LINE_HANGUP 
LINE_DISCONNECT 
LINE_ON_HOOK 
LINE_OFF_HOOK 
RING_ON 
RING_OFF 
RING_STOP 
LINE_CALLER_ID 
RINGING_DID 
DEVICE_BLOCKED 
DEVICE_UNBLOCKED 
DEVICE_OPEN 
DEVICE_CLOSE 
DSP_READY 
CALL_DETECT 
CALL_CONNECTED 
CALL_RELEASED 
CALL_ACCEPTED 
CALL_ANSWERED 
CALL_HOLD 
CALL_HOLDING 
CALL_NOHOLD 
CALL_DIGITS 
CALL_OFFERED 
CALL_ANI 
CALL_ACTIVE 
CALL_NOACTIVE 
CALL_BILLING 
CALL_RESTART 
CALL_SETSTATE 
CALL_FAILURE 
CALL_ALERTING 
CALL_INFO 
CALL_BUSY 
CALL_DIVERT 
CALL_FACILITY 
CALL_FRAME 
CALL_NOTIFY 
CALL_NSI 
CALL_RINGING 
CALL_DISCONNECT 
CALL_CLEARED 
RESTART_FAILED 
RELEASE_FAILED 
START_RING 
STOP_RING 
CLEAR_TIMESLOT 
START_FLASH 
STOP_FLASH 
DIAL_CONNECT 
DIAL_TIMEOUT 
DIAL_FAILED 
DIAL_INVALID 
DIAL_BUSY 
DIAL_FAX 
DIAL_PAM 
DIAL_MACHINE 
AUDIO_IDLE 
AUDIO_ACTIVE 
AUDIO_EXPIRED 
INPUT_PENDING 
OUTPUT_PENDING 
AUDIO_BUFFER 
TONE_IDLE 
DTMF_KEYDOWN 
DTMF_KEYSYNC 
DTMF_KEYUP 
TONE_START 
TONE_STOP 
AUDIO_START 
AUDIO_STOP 
DTMF_START 
DTMF_STOP 
MAKE_TEST 
MAKE_BUSY 
MAKE_IDLE 
MAKE_DOWN 
MAKE_UP 
MAKE_EXPIRED 
ENABLE_LOGGING 
DISABLE_LOGGING 
PART_EXPIRED 
PART_EXITING 
PART_DISCONNECT 
JOIN_PEER 
PEER_WAITING 
SYSTEM_DOWN 
DRIVER_SPECIFIC 

enum ost::Bayonne::interface_t
 

Telephony endpoint interface identifiers.

Enumerator:
IF_PSTN 
IF_SPAN 
IF_ISDN 
IF_SS7 
IF_INET 
IF_NONE 
IF_POTS 

enum ost::Bayonne::result_t
 

Enumerator:
RESULT_SUCCESS 
RESULT_TIMEOUT 
RESULT_INVALID 
RESULT_PENDING 
RESULT_COMPLETE 
RESULT_FAILED 
RESULT_BADPATH 
RESULT_OFFLINE 

enum ost::Bayonne::signal_t
 

Signaled interpreter events.

These can be masked and accessed through ^xxx handlers in the scripting language.

Enumerator:
SIGNAL_EXIT 
SIGNAL_ERROR 
SIGNAL_TIMEOUT 
SIGNAL_DTMF 
SIGNAL_0 
SIGNAL_1 
SIGNAL_2 
SIGNAL_3 
SIGNAL_4 
SIGNAL_5 
SIGNAL_6 
SIGNAL_7 
SIGNAL_8 
SIGNAL_9 
SIGNAL_STAR 
SIGNAL_POUND 
SIGNAL_A 
SIGNAL_OVERRIDE 
SIGNAL_B 
SIGNAL_FLASH 
SIGNAL_C 
SIGNAL_IMMEDIATE 
SIGNAL_D 
SIGNAL_PRIORITY 
SIGNAL_RING 
SIGNAL_TONE 
SIGNAL_EVENT 
SIGNAL_WINK 
SIGNAL_CHILD 
SIGNAL_FAIL 
SIGNAL_PICKUP 
SIGNAL_PART 
SIGNAL_INVALID 
SIGNAL_PARENT 
SIGNAL_WAIT 
SIGNAL_HANGUP 

enum ost::Bayonne::state_t
 

Call processing states offered in core library.

This list must be ordered to match the entries in the state table (statetab).

Enumerator:
STATE_INITIAL 
STATE_IDLE 
STATE_RESET 
STATE_RELEASE 
STATE_BUSY 
STATE_DOWN 
STATE_RING 
STATE_PICKUP 
STATE_SEIZE 
STATE_STEP 
STATE_EXEC 
STATE_THREAD 
STATE_CLEAR 
STATE_INKEY 
STATE_INPUT 
STATE_READ 
STATE_COLLECT 
STATE_DIAL 
STATE_XFER 
STATE_HOLD 
STATE_RECALL 
STATE_TONE 
STATE_DTMF 
STATE_PLAY 
STATE_RECORD 
STATE_JOIN 
STATE_WAIT 
STATE_CONNECT 
STATE_SLEEP 
STATE_START 
STATE_HANGUP 
STATE_LIBRESET 
STATE_WAITKEY 
STATE_LIBWAIT 
STATE_IRESET 
STATE_FINAL 
STATE_STANDBY 
STATE_LIBEXEC 
STATE_RINGING 
STATE_RUNNING 
STATE_THREADING 


Member Function Documentation

static void ost::Bayonne::allocate timeslot_t  timeslots,
ScriptCommand *  server = NULL
[static]
 

Allocates the maximum number of timeslots the server will use as a whole and attaches a given server to the library.

Parameters:
timeslots to allocate.
pointer to server shell.

static void ost::Bayonne::down void   )  [static]
 

Used to down the server from the library.

static void ost::Bayonne::endImage ScriptImage *  img  )  [static]
 

Release a script image in use.

If no active calls are using it and it's no longer the top active image, purge from memory.

Parameters:
script image from useImage.

static void ost::Bayonne::errlog const char *  level,
const char *  fmt,
  ...
[static]
 

static timeslot_t ost::Bayonne::getAvailTimeslots void   )  [inline, static]
 

Return remaining timeslots available to allocate driver ports into.

Returns:
remaining timeslots.

static char ost::Bayonne::getChar int  dtmf  )  [static]
 

Convert a dtmf digit number into it's ascii code.

Parameters:
dtmf digit number.
Returns:
dtmf character code.

static int ost::Bayonne::getDigit char  dig  )  [static]
 

Convert a dtmf character into a 0-15 number reference.

Parameters:
dtmf digit as ascii
Returns:
dtmf digit number.

static const char* ost::Bayonne::getKeypath const char *  cp  )  [static]
 

static BayonneSession* ost::Bayonne::getSession timeslot_t  timeslot  )  [static]
 

Returns a session pointer for a server timeslot.

Each server timeslot can map to a single session object.

Parameters:
server timeslot number.
Returns:
session object or NULL if timeslot empty/invalid.

static BayonneSession* ost::Bayonne::getSid const char *  id  )  [static]
 

Returns a session pointer for a string identifier.

This can be for a transaction id, a call id, or other unique identifiers which can be mapped into a single timeslot.

Parameters:
string session identifier.
Returns:
session object or NULL if not found.

static Handler ost::Bayonne::getState const char *  name  )  [static]
 

Map a state name into a handler.

Used for logging requests. Uses the statetab.

Parameters:
name of state to lookup.
Returns:
handler method for state if found.

static timeslot_t ost::Bayonne::getTimeslotCount void   )  [inline, static]
 

Return total timeslots allocated for the server.

Returns:
total number of timeslots, max + 1.

static timeslot_t ost::Bayonne::getTimeslotsUsed void   )  [inline, static]
 

Return total library timeslots used (highest used).

Returns:
highest server timeslot in use.

static bool ost::Bayonne::loadAudio const char *  path  )  [static]
 

Load a bgm/audio processing module for continues audio.

Parameters:
id of plugin.
Returns:
true if successful.

static bool ost::Bayonne::loadMonitor const char *  path  )  [static]
 

Load a monitoring/management module.

Parameters:
id of plugin.
Returns:
true if successful.

static bool ost::Bayonne::loadPlugin const char *  path  )  [static]
 

Load a plugin module.

Parameters:
id of plugin.
Returns:
true if successful.

static bool ost::Bayonne::matchDigits const char *  digits,
const char *  match,
bool  partial = false
[static]
 

A function to support pattern matching and templates for digit strings.

This is used for digit :... entries and the route command.

Parameters:
digits to use.
digit pattern to match against.
accept partial match.
Returns:
true if digits match to pattern.

static ScriptCompiler* ost::Bayonne::reload void   )  [static]
 

Request active scripts to be recompiled from the library.

Returns:
script image that was created, or NULL.

static bool ost::Bayonne::service const char *  svc  )  [static]
 

Sets server service level from the library.

Parameters:
service level or NULL to clear.
Returns:
true if set.

static timeslot_t ost::Bayonne::toTimeslot const char *  id  )  [static]
 

Returns a server timeslot number for a string identifier.

Returns:
timeslot number or invalid value.
Parameters:
string identifier for a session.
See also:
getSid

static unsigned long ost::Bayonne::uptime void   )  [static]
 

Get server uptime.

Returns:
uptime in seconds.

static ScriptImage* ost::Bayonne::useImage void   )  [static]
 

Use the current compiled script image; mark as in use.

Returns:
current script image to pass to new calls.

static void ost::Bayonne::waitLoaded void   )  [static]
 

Wait for live flag.

..


Member Data Documentation

unsigned ost::Bayonne::compile_count [static]
 

timeout_t ost::Bayonne::exec_timer [static]
 

unsigned ost::Bayonne::idle_count [static, protected]
 

unsigned ost::Bayonne::idle_limit [static, protected]
 

volatile bool ost::Bayonne::image_loaded [static]
 

BayonneTranslator* ost::Bayonne::init_translator [static]
 

const char* ost::Bayonne::init_voicelib [static]
 

AtomicCounter ost::Bayonne::libexec_count [static]
 

std::ostream* ost::Bayonne::logging [static, protected]
 

const char* ost::Bayonne::path_prompts [static, protected]
 

const char* ost::Bayonne::path_tmp [static, protected]
 

const char* ost::Bayonne::path_tmpfs [static, protected]
 

Audio::Encoding ost::Bayonne::peer_encoding [static]
 

Audio::timeout_t ost::Bayonne::peer_framing [static]
 

bool ost::Bayonne::provision_check [static]
 

bool ost::Bayonne::provision_daemon [static]
 

const char* ost::Bayonne::provision_libexec [static]
 

bool ost::Bayonne::provision_ripple [static]
 

const char* ost::Bayonne::provision_server [static]
 

bool ost::Bayonne::provision_system [static]
 

bool ost::Bayonne::provision_test [static]
 

bool ost::Bayonne::provision_user [static]
 

timeout_t ost::Bayonne::reset_timer [static]
 

Reimplemented in ost::BayonneDriver.

Mutex ost::Bayonne::serialize [static]
 

A mutex to serialize any direct console I/O operations.

Sometimes used to serialize other kinds of time insensitive requests.

ScriptCommand* ost::Bayonne::server [static, protected]
 

bool ost::Bayonne::shutdown_flag [static, protected]
 

char ost::Bayonne::sla[] [static, protected]
 

time_t ost::Bayonne::start_time [static, protected]
 

statetab ost::Bayonne::states[] [static]
 

Table of states ordered by id.

char* ost::Bayonne::status [static, protected]
 

timeout_t ost::Bayonne::step_timer [static]
 

BayonneSession** ost::Bayonne::timeslots [static, protected]
 

timeslot_t ost::Bayonne::ts_count [static, protected]
 

timeslot_t ost::Bayonne::ts_used [static, protected]
 


The documentation for this class was generated from the following file:
Generated on Tue May 2 13:21:09 2006 for Bayonne by  doxygen 1.4.6