Wavelength
Privacy-focused, cross-platform, and open-source communication application
Loading...
Searching...
No Matches
SessionCoordinator Class Referencefinal

Singleton coordinator class acting as a facade for Wavelength session management. More...

#include <session_coordinator.h>

Inheritance diagram for SessionCoordinator:
Collaboration diagram for SessionCoordinator:

Signals

void activeWavelengthChanged (QString frequency)
 Emitted when the active wavelength changes. Relayed from WavelengthStateManager.
 
void audioDataReceived (QString frequency, const QByteArray &audio_data)
 Emitted when raw audio data is received. Relayed from WavelengthMessageService.
 
void authenticationFailed (QString frequency)
 Emitted when authentication fails during join. Relayed from WavelengthJoiner.
 
void connectionError (const QString &error_message)
 Emitted when a connection error occurs. Relayed from WavelengthCreator/Joiner.
 
void messageReceived (QString frequency, const QString &message)
 Emitted when a message is received. Relayed from WavelengthMessageProcessor/Joiner.
 
void messageSent (QString frequency, const QString &message)
 Emitted when a message is successfully sent. Relayed from WavelengthMessageService.
 
void pttDenied (QString frequency, QString reason)
 Emitted when PTT transmission is denied. Relayed from WavelengthMessageService.
 
void pttGranted (QString frequency)
 Emitted when PTT transmission is granted. Relayed from WavelengthMessageService.
 
void pttStartReceiving (QString frequency, QString sender_id)
 Emitted when another user starts PTT transmission. Relayed from WavelengthMessageService.
 
void pttStopReceiving (QString frequency)
 Emitted when another user stops PTT transmission. Relayed from WavelengthMessageService.
 
void remoteAudioAmplitudeUpdate (QString frequency, qreal amplitude)
 Emitted when remote audio amplitude updates are received. Relayed from WavelengthMessageService.
 
void userKicked (QString frequency, const QString &reason)
 Emitted when the current user is kicked from a frequency. Relayed from WavelengthMessageProcessor.
 
void wavelengthClosed (QString frequency)
 Emitted when a wavelength is closed (by host or server). Relayed from multiple components.
 
void wavelengthCreated (QString frequency)
 Emitted when a wavelength is successfully created. Relayed from WavelengthCreator.
 
void wavelengthJoined (QString frequency)
 Emitted when a wavelength is successfully joined. Relayed from WavelengthJoiner.
 
void wavelengthLeft (QString frequency)
 Emitted when the user leaves the active wavelength. Relayed from WavelengthLeaver.
 

Public Member Functions

void Initialize ()
 Initializes the coordinator and its underlying components. Connects signals between various Wavelength services and loads the application configuration.
 
SessionCoordinatoroperator= (const SessionCoordinator &)=delete
 Deleted assignment operator to prevent assignment.
 
 SessionCoordinator (const SessionCoordinator &)=delete
 Deleted copy constructor to prevent copying.
 

Static Public Member Functions

static void CloseWavelength (const QString &frequency)
 Closes a specific wavelength (only if the current user is the host). Unregisters the wavelength locally and delegates the call to WavelengthLeaver.
 
static bool CreateWavelength (const QString &frequency, bool is_password_protected, const QString &password)
 Initiates the creation of a new wavelength. Delegates the call to WavelengthCreator and registers the wavelength as joined locally upon initiation.
 
static QString GetActiveWavelength ()
 Gets the frequency identifier of the currently active wavelength. Delegates the call to WavelengthStateManager.
 
static SessionCoordinatorGetInstance ()
 Gets the singleton instance of the WavelengthSessionCoordinator.
 
static int GetJoinedWavelengthCount ()
 Gets the count of wavelengths the user is currently joined to. Delegates the call to WavelengthStateManager.
 
static QList< QString > GetJoinedWavelengths ()
 Gets a list of frequencies the user is currently joined to. Delegates the call to WavelengthStateManager.
 
static QString GetRelayServerAddress ()
 Gets the configured relay server address. Delegates the call to WavelengthConfig.
 
static QString GetRelayServerUrl ()
 Gets the full URL (ws://address:port) of the relay server. Delegates the call to WavelengthConfig.
 
static WavelengthInfo GetWavelengthInfo (const QString &frequency, bool *is_host=nullptr)
 Retrieves detailed information about a specific wavelength. Delegates the call to WavelengthStateManager.
 
static bool IsActiveWavelengthHost ()
 Checks if the current user is the host of the currently active wavelength. Delegates the call to WavelengthStateManager.
 
static bool IsWavelengthConnected (const QString &frequency)
 Checks if the WebSocket connection for a specific wavelength is established and valid. Delegates the call to WavelengthStateManager.
 
static bool IsWavelengthHost (const QString &frequency)
 Checks if the current user is the host of a specific wavelength. Delegates the call to WavelengthStateManager.
 
static bool IsWavelengthJoined (const QString &frequency)
 Checks if the user is considered joined to a specific wavelength (based on registry presence). Delegates the call to WavelengthStateManager.
 
static bool IsWavelengthPasswordProtected (const QString &frequency)
 Checks if a specific wavelength is password protected. Delegates the call to WavelengthStateManager.
 
static bool JoinWavelength (const QString &frequency, const QString &password=QString())
 Initiates joining an existing wavelength. Delegates the call to WavelengthJoiner and registers the wavelength as joined locally upon initiation.
 
static void LeaveWavelength ()
 Leaves the currently active wavelength. Unregisters the wavelength locally and delegates the call to WavelengthLeaver.
 
static bool SendFile (const QString &file_path)
 Sends a file to the currently active wavelength. Delegates the call to WavelengthMessageService.
 
static bool SendMessage (const QString &message)
 Sends a text message to the currently active wavelength. Delegates the call to WavelengthMessageService.
 
static void SetActiveWavelength (const QString &frequency)
 Sets the specified frequency as the currently active wavelength. Delegates the call to WavelengthStateManager.
 
static void SetRelayServerAddress (const QString &address)
 Sets the relay server address in the configuration. Delegates the call to WavelengthConfig.
 

Private Slots

void onActiveWavelengthChanged (const QString &frequency)
 Slot triggered when the active wavelength changes. Relays the signal and publishes the event via WavelengthEventBroker.
 
void onAudioDataReceived (const QString &frequency, const QByteArray &audio_data)
 Relays the audioDataReceived signal.
 
void onAuthenticationFailed (const QString &frequency)
 Slot triggered when authentication fails during join. Relays the signal and publishes the event via WavelengthEventBroker.
 
static void onConfigChanged (const QString &key)
 Slot triggered when a configuration setting changes. Logs the change.
 
void onConnectionError (const QString &errorMessage)
 Slot triggered when a connection error occurs. Relays the signal and publishes the event via WavelengthEventBroker.
 
void onMessageReceived (const QString &frequency, const QString &message)
 Slot triggered when a message is received. Relays the signal and publishes the event via WavelengthEventBroker.
 
void onMessageSent (const QString &frequency, const QString &message)
 Slot triggered when a message is sent. Relays the signal and publishes the event via WavelengthEventBroker.
 
void onPttDenied (const QString &frequency, const QString &reason)
 Relays the pttDenied signal.
 
void onPttGranted (const QString &frequency)
 Relays the pttGranted signal.
 
void onPttStartReceiving (const QString &frequency, const QString &sender_id)
 Relays the pttStartReceiving signal.
 
void onPttStopReceiving (const QString &frequency)
 Relays the pttStopReceiving signal.
 
void onRemoteAudioAmplitudeUpdate (const QString &frequency, const qreal amplitude)
 Relays the remoteAudioAmplitudeUpdate signal.
 
void onWavelengthClosed (const QString &frequency)
 Slot triggered when a wavelength is closed. Relays the signal and publishes the event via WavelengthEventBroker.
 
void onWavelengthCreated (const QString &frequency)
 Slot triggered when a wavelength is created. Relays the signal and publishes the event via WavelengthEventBroker.
 
void onWavelengthJoined (const QString &frequency)
 Slot triggered when a wavelength is joined. Relays the signal and publishes the event via WavelengthEventBroker.
 
void onWavelengthLeft (const QString &frequency)
 Slot triggered when the active wavelength is left. Relays the signal and publishes the event via WavelengthEventBroker.
 

Private Member Functions

void ConnectSignals ()
 Connects signals between the various Wavelength components. Called during Initialize().
 
 SessionCoordinator (QObject *parent=nullptr)
 Private constructor to enforce the singleton pattern.
 
 ~SessionCoordinator () override=default
 Private destructor.
 

Static Private Member Functions

static void LoadConfig ()
 Loads the application configuration using WavelengthConfig. Sets default values if the configuration file doesn't exist. Called during Initialize().
 

Detailed Description

Singleton coordinator class acting as a facade for Wavelength session management.

This class simplifies interactions with various Wavelength components (Creator, Joiner, Leaver, MessageService, StateManager, Config, EventBroker) by providing a unified interface. It handles the initialization sequence, connects signals between components, and forwards events and actions. It also publishes events to the WavelengthEventBroker for decoupling.

Constructor & Destructor Documentation

◆ SessionCoordinator() [1/2]

SessionCoordinator::SessionCoordinator ( const SessionCoordinator & )
delete

Deleted copy constructor to prevent copying.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SessionCoordinator() [2/2]

SessionCoordinator::SessionCoordinator ( QObject * parent = nullptr)
inlineexplicitprivate

Private constructor to enforce the singleton pattern.

Parameters
parentOptional parent QObject.

◆ ~SessionCoordinator()

SessionCoordinator::~SessionCoordinator ( )
overrideprivatedefault

Private destructor.

Member Function Documentation

◆ activeWavelengthChanged

void SessionCoordinator::activeWavelengthChanged ( QString frequency)
signal

Emitted when the active wavelength changes. Relayed from WavelengthStateManager.

Here is the caller graph for this function:

◆ audioDataReceived

void SessionCoordinator::audioDataReceived ( QString frequency,
const QByteArray & audio_data )
signal

Emitted when raw audio data is received. Relayed from WavelengthMessageService.

Here is the caller graph for this function:

◆ authenticationFailed

void SessionCoordinator::authenticationFailed ( QString frequency)
signal

Emitted when authentication fails during join. Relayed from WavelengthJoiner.

Here is the caller graph for this function:

◆ CloseWavelength()

void SessionCoordinator::CloseWavelength ( const QString & frequency)
static

Closes a specific wavelength (only if the current user is the host). Unregisters the wavelength locally and delegates the call to WavelengthLeaver.

Parameters
frequencyThe frequency name to close.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ connectionError

void SessionCoordinator::connectionError ( const QString & error_message)
signal

Emitted when a connection error occurs. Relayed from WavelengthCreator/Joiner.

Here is the caller graph for this function:

◆ ConnectSignals()

void SessionCoordinator::ConnectSignals ( )
private

Connects signals between the various Wavelength components. Called during Initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateWavelength()

bool SessionCoordinator::CreateWavelength ( const QString & frequency,
bool is_password_protected,
const QString & password )
static

Initiates the creation of a new wavelength. Delegates the call to WavelengthCreator and registers the wavelength as joined locally upon initiation.

Parameters
frequencyThe desired frequency name.
is_password_protectedTrue if the wavelength should require a password.
passwordThe password to set (if protected).
Returns
True if the creation process was initiated, false otherwise (e.g., already exists).
Here is the call graph for this function:

◆ GetActiveWavelength()

QString SessionCoordinator::GetActiveWavelength ( )
static

Gets the frequency identifier of the currently active wavelength. Delegates the call to WavelengthStateManager.

Returns
The active frequency string, or "-1" if none.
Here is the call graph for this function:

◆ GetInstance()

static SessionCoordinator * SessionCoordinator::GetInstance ( )
inlinestatic

Gets the singleton instance of the WavelengthSessionCoordinator.

Returns
Pointer to the singleton WavelengthSessionCoordinator instance.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetJoinedWavelengthCount()

int SessionCoordinator::GetJoinedWavelengthCount ( )
static

Gets the count of wavelengths the user is currently joined to. Delegates the call to WavelengthStateManager.

Returns
The number of joined wavelengths.
Here is the call graph for this function:

◆ GetJoinedWavelengths()

QList< QString > SessionCoordinator::GetJoinedWavelengths ( )
static

Gets a list of frequencies the user is currently joined to. Delegates the call to WavelengthStateManager.

Returns
A QList<QString> of joined frequencies.
Here is the call graph for this function:

◆ GetRelayServerAddress()

QString SessionCoordinator::GetRelayServerAddress ( )
static

Gets the configured relay server address. Delegates the call to WavelengthConfig.

Returns
The server address string.
Here is the call graph for this function:

◆ GetRelayServerUrl()

QString SessionCoordinator::GetRelayServerUrl ( )
static

Gets the full URL (ws://address:port) of the relay server. Delegates the call to WavelengthConfig.

Returns
The full WebSocket URL string.
Here is the call graph for this function:

◆ GetWavelengthInfo()

WavelengthInfo SessionCoordinator::GetWavelengthInfo ( const QString & frequency,
bool * is_host = nullptr )
static

Retrieves detailed information about a specific wavelength. Delegates the call to WavelengthStateManager.

Parameters
frequencyThe frequency identifier.
is_hostOptional output parameter; set to true if the current user is the host.
Returns
A WavelengthInfo struct.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Initialize()

void SessionCoordinator::Initialize ( )

Initializes the coordinator and its underlying components. Connects signals between various Wavelength services and loads the application configuration.

Here is the call graph for this function:

◆ IsActiveWavelengthHost()

bool SessionCoordinator::IsActiveWavelengthHost ( )
static

Checks if the current user is the host of the currently active wavelength. Delegates the call to WavelengthStateManager.

Returns
True if the user is the host of the active wavelength, false otherwise.
Here is the call graph for this function:

◆ IsWavelengthConnected()

bool SessionCoordinator::IsWavelengthConnected ( const QString & frequency)
static

Checks if the WebSocket connection for a specific wavelength is established and valid. Delegates the call to WavelengthStateManager.

Parameters
frequencyThe frequency identifier.
Returns
True if connected, false otherwise.
Here is the call graph for this function:

◆ IsWavelengthHost()

bool SessionCoordinator::IsWavelengthHost ( const QString & frequency)
static

Checks if the current user is the host of a specific wavelength. Delegates the call to WavelengthStateManager.

Parameters
frequencyThe frequency identifier.
Returns
True if the user is the host, false otherwise.
Here is the call graph for this function:

◆ IsWavelengthJoined()

bool SessionCoordinator::IsWavelengthJoined ( const QString & frequency)
static

Checks if the user is considered joined to a specific wavelength (based on registry presence). Delegates the call to WavelengthStateManager.

Parameters
frequencyThe frequency identifier.
Returns
True if joined, false otherwise.
Here is the call graph for this function:

◆ IsWavelengthPasswordProtected()

bool SessionCoordinator::IsWavelengthPasswordProtected ( const QString & frequency)
static

Checks if a specific wavelength is password protected. Delegates the call to WavelengthStateManager.

Parameters
frequencyThe frequency identifier.
Returns
True if password protected, false otherwise.
Here is the call graph for this function:

◆ JoinWavelength()

bool SessionCoordinator::JoinWavelength ( const QString & frequency,
const QString & password = QString() )
static

Initiates joining an existing wavelength. Delegates the call to WavelengthJoiner and registers the wavelength as joined locally upon initiation.

Parameters
frequencyThe frequency name to join.
passwordOptional password for the wavelength.
Returns
True if the join process was initiated, false otherwise (e.g., already joined).
Here is the call graph for this function:

◆ LeaveWavelength()

void SessionCoordinator::LeaveWavelength ( )
static

Leaves the currently active wavelength. Unregisters the wavelength locally and delegates the call to WavelengthLeaver.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadConfig()

void SessionCoordinator::LoadConfig ( )
staticprivate

Loads the application configuration using WavelengthConfig. Sets default values if the configuration file doesn't exist. Called during Initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ messageReceived

void SessionCoordinator::messageReceived ( QString frequency,
const QString & message )
signal

Emitted when a message is received. Relayed from WavelengthMessageProcessor/Joiner.

Here is the caller graph for this function:

◆ messageSent

void SessionCoordinator::messageSent ( QString frequency,
const QString & message )
signal

Emitted when a message is successfully sent. Relayed from WavelengthMessageService.

Here is the caller graph for this function:

◆ onActiveWavelengthChanged

void SessionCoordinator::onActiveWavelengthChanged ( const QString & frequency)
privateslot

Slot triggered when the active wavelength changes. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
frequencyThe new active frequency.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ onAudioDataReceived

void SessionCoordinator::onAudioDataReceived ( const QString & frequency,
const QByteArray & audio_data )
inlineprivateslot

Relays the audioDataReceived signal.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onAuthenticationFailed

void SessionCoordinator::onAuthenticationFailed ( const QString & frequency)
privateslot

Slot triggered when authentication fails during join. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
frequencyThe frequency for which authentication failed.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ onConfigChanged

static void SessionCoordinator::onConfigChanged ( const QString & key)
inlinestaticprivateslot

Slot triggered when a configuration setting changes. Logs the change.

Parameters
keyThe configuration key that changed.
Here is the caller graph for this function:

◆ onConnectionError

void SessionCoordinator::onConnectionError ( const QString & errorMessage)
privateslot

Slot triggered when a connection error occurs. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
errorMessageDescription of the error.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ onMessageReceived

void SessionCoordinator::onMessageReceived ( const QString & frequency,
const QString & message )
privateslot

Slot triggered when a message is received. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
frequencyThe frequency the message belongs to.
messageThe formatted message content.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ onMessageSent

void SessionCoordinator::onMessageSent ( const QString & frequency,
const QString & message )
privateslot

Slot triggered when a message is sent. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
frequencyThe frequency the message was sent to.
messageThe formatted message content.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ onPttDenied

void SessionCoordinator::onPttDenied ( const QString & frequency,
const QString & reason )
inlineprivateslot

Relays the pttDenied signal.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onPttGranted

void SessionCoordinator::onPttGranted ( const QString & frequency)
inlineprivateslot

Relays the pttGranted signal.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onPttStartReceiving

void SessionCoordinator::onPttStartReceiving ( const QString & frequency,
const QString & sender_id )
inlineprivateslot

Relays the pttStartReceiving signal.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onPttStopReceiving

void SessionCoordinator::onPttStopReceiving ( const QString & frequency)
inlineprivateslot

Relays the pttStopReceiving signal.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onRemoteAudioAmplitudeUpdate

void SessionCoordinator::onRemoteAudioAmplitudeUpdate ( const QString & frequency,
const qreal amplitude )
inlineprivateslot

Relays the remoteAudioAmplitudeUpdate signal.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onWavelengthClosed

void SessionCoordinator::onWavelengthClosed ( const QString & frequency)
privateslot

Slot triggered when a wavelength is closed. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
frequencyThe frequency closed.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ onWavelengthCreated

void SessionCoordinator::onWavelengthCreated ( const QString & frequency)
privateslot

Slot triggered when a wavelength is created. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
frequencyThe frequency created.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ onWavelengthJoined

void SessionCoordinator::onWavelengthJoined ( const QString & frequency)
privateslot

Slot triggered when a wavelength is joined. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
frequencyThe frequency joined.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ onWavelengthLeft

void SessionCoordinator::onWavelengthLeft ( const QString & frequency)
privateslot

Slot triggered when the active wavelength is left. Relays the signal and publishes the event via WavelengthEventBroker.

Parameters
frequencyThe frequency left.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

SessionCoordinator & SessionCoordinator::operator= ( const SessionCoordinator & )
delete

Deleted assignment operator to prevent assignment.

Here is the call graph for this function:

◆ pttDenied

void SessionCoordinator::pttDenied ( QString frequency,
QString reason )
signal

Emitted when PTT transmission is denied. Relayed from WavelengthMessageService.

Here is the caller graph for this function:

◆ pttGranted

void SessionCoordinator::pttGranted ( QString frequency)
signal

Emitted when PTT transmission is granted. Relayed from WavelengthMessageService.

Here is the caller graph for this function:

◆ pttStartReceiving

void SessionCoordinator::pttStartReceiving ( QString frequency,
QString sender_id )
signal

Emitted when another user starts PTT transmission. Relayed from WavelengthMessageService.

Here is the caller graph for this function:

◆ pttStopReceiving

void SessionCoordinator::pttStopReceiving ( QString frequency)
signal

Emitted when another user stops PTT transmission. Relayed from WavelengthMessageService.

Here is the caller graph for this function:

◆ remoteAudioAmplitudeUpdate

void SessionCoordinator::remoteAudioAmplitudeUpdate ( QString frequency,
qreal amplitude )
signal

Emitted when remote audio amplitude updates are received. Relayed from WavelengthMessageService.

Here is the caller graph for this function:

◆ SendFile()

bool SessionCoordinator::SendFile ( const QString & file_path)
static

Sends a file to the currently active wavelength. Delegates the call to WavelengthMessageService.

Parameters
file_pathThe local path to the file.
Returns
True if the file sending a task was successfully queued, false otherwise.
Here is the call graph for this function:

◆ SendMessage()

bool SessionCoordinator::SendMessage ( const QString & message)
static

Sends a text message to the currently active wavelength. Delegates the call to WavelengthMessageService.

Parameters
messageThe text message content.
Returns
True if the message was sent successfully, false otherwise.
Here is the call graph for this function:

◆ SetActiveWavelength()

void SessionCoordinator::SetActiveWavelength ( const QString & frequency)
static

Sets the specified frequency as the currently active wavelength. Delegates the call to WavelengthStateManager.

Parameters
frequencyThe frequency identifier to set as active.
Here is the call graph for this function:

◆ SetRelayServerAddress()

void SessionCoordinator::SetRelayServerAddress ( const QString & address)
static

Sets the relay server address in the configuration. Delegates the call to WavelengthConfig.

Parameters
addressThe new server address string.
Here is the call graph for this function:

◆ userKicked

void SessionCoordinator::userKicked ( QString frequency,
const QString & reason )
signal

Emitted when the current user is kicked from a frequency. Relayed from WavelengthMessageProcessor.

Here is the caller graph for this function:

◆ wavelengthClosed

void SessionCoordinator::wavelengthClosed ( QString frequency)
signal

Emitted when a wavelength is closed (by host or server). Relayed from multiple components.

Here is the caller graph for this function:

◆ wavelengthCreated

void SessionCoordinator::wavelengthCreated ( QString frequency)
signal

Emitted when a wavelength is successfully created. Relayed from WavelengthCreator.

Here is the caller graph for this function:

◆ wavelengthJoined

void SessionCoordinator::wavelengthJoined ( QString frequency)
signal

Emitted when a wavelength is successfully joined. Relayed from WavelengthJoiner.

Here is the caller graph for this function:

◆ wavelengthLeft

void SessionCoordinator::wavelengthLeft ( QString frequency)
signal

Emitted when the user leaves the active wavelength. Relayed from WavelengthLeaver.

Here is the caller graph for this function:

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