ALBA
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
albaDeviceSet Class Reference

#include <albaDeviceSet.h>

Inheritance diagram for albaDeviceSet:
Inheritance graph
[legend]
Collaboration diagram for albaDeviceSet:
Collaboration graph
[legend]

Public Member Functions

 ALBA_ID_DEC (DEVICE_ADD)
 
 ALBA_ID_DEC (DEVICE_REMOVE)
 
 ALBA_ID_DEC (DEVICE_ADDED)
 
 ALBA_ID_DEC (DEVICE_REMOVING)
 
 albaTypeMacro (albaDeviceSet, albaDevice)
 
virtual void AddDevice (albaDevice *device)
 
albaDeviceGetDeviceByIndex (int idx)
 
albaDeviceGetDevice (albaID id)
 
albaDeviceGetDevice (const char *name)
 
int GetNumberOfDevices ()
 
int RemoveDeviceByIndex (int idx, bool force=false)
 
int RemoveDevice (albaID id, bool force=false)
 
int RemoveDevice (albaDevice *device, bool force=false)
 
int RemoveDevice (const char *name, bool force=false)
 
void RemoveAllDevices (bool force=false)
 
virtual void OnEvent (albaEventBase *event)
 
std::list< albaDevice * > * GetDevices ()
 
- Public Member Functions inherited from albaDevice
 albaTypeMacro (albaDevice, albaAgentThreaded)
 
unsigned long GetID ()
 
void SetID (unsigned long id)
 
virtual void SetName (const char *name)
 
void SetAutoStart (bool flag)
 
bool GetAutoStart ()
 
void AutoStartOn ()
 
void AutoStartOff ()
 
virtual int Start ()
 
virtual void Stop ()
 
virtual int StartUp ()
 
void SetPersistentFlag (bool flag)
 
bool GetPersistentFlag ()
 
bool IsPersistent ()
 
albaGUIGetGui ()
 
virtual void UpdateGui ()
 
virtual void OnEvent (albaEventBase *event)
 
 ALBA_ID_DEC (DEVICE_STARTED)
 
 ALBA_ID_DEC (DEVICE_STOPPED)
 
- Public Member Functions inherited from albaAgentThreaded
 ALBA_ID_DEC (AGENT_ASYNC_DISPATCH)
 
 albaTypeMacro (albaAgentThreaded, albaAgentEventQueue)
 
int GetThreaded ()
 
void SetThreaded (int flag)
 
int Update ()
 
virtual void OnEvent (albaEventBase *event)
 
void AsyncSendEvent (albaObserver *target, albaEventBase *event, albaID channel=MCH_UP)
 
void AsyncSendEvent (albaObserver *target, void *sender, albaID id, albaID channel=MCH_UP, void *data=NULL)
 
void AsyncInvokeEvent (albaEventBase *event, albaID channel=MCH_UP)
 
void AsyncInvokeEvent (albaID id, albaID channel=MCH_UP, void *data=NULL)
 
- Public Member Functions inherited from albaAgentEventQueue
 ALBA_ID_DEC (EVENT_DISPATCH)
 
 albaTypeMacro (albaAgentEventQueue, albaAgent)
 
bool PushEvent (albaEventBase &event)
 
virtual bool PushEvent (albaEventBase *event)
 
bool PushEvent (albaID event_id, void *sender, void *data=NULL)
 
albaEventBasePeekEvent ()
 
albaEventBasePeekLastEvent ()
 
int GetQueueSize ()
 
bool IsQueueEmpty ()
 
virtual bool DispatchEvents ()
 
void SetDequeueMode (int mode)
 
int GetDequeueMode ()
 
void SetDequeueModeToMultipleEvent ()
 
void SetDequeueModeToSingleEvent ()
 
void SetDispatchMode (int mode)
 
int GetDispatchMode ()
 
void SetDispatchModeToSelfProcess ()
 
void SetDispatchModeToBroadcast ()
 
void SetPushMode (int mode)
 
int GetPushMode ()
 
void SetPushModeToDispatchEvent ()
 
void SetPushModeToPolling ()
 
- Public Member Functions inherited from albaAgent
 albaAbstractTypeMacro (albaAgent, albaReferenceCounted)
 
 ALBA_ID_DEC (AGENT_INITIALIZE)
 
void AddObserver (albaObserver *listener, albaID channel=MCH_UP)
 
void RemoveObserver (albaObserver *listener)
 
void RemoveAllObservers ()
 
virtual void OnEvent (albaEventBase *event)
 
bool HasObservers (albaID channel)
 
void GetObservers (albaID channel, std::vector< albaObserver * > &olist)
 
int Initialize ()
 
void Shutdown ()
 
int IsInitialized ()
 
virtual void SetName (const char *name)
 
const char * GetName ()
 
- Public Member Functions inherited from albaReferenceCounted
 albaReferenceCounted ()
 
virtual ~albaReferenceCounted ()
 
 albaAbstractTypeMacro (albaReferenceCounted, albaObject)
 
virtual void Delete ()
 
void Register (void *obj)
 
virtual void UnRegister (void *obj)
 
int GetReferenceCount ()
 
void SetReferenceCount (int)
 
- Public Member Functions inherited from albaObject
 albaObject ()
 
virtual ~albaObject ()
 
virtual void Delete ()
 
virtual const char * GetTypeName () const
 
virtual bool IsA (const char *type_name) const
 
virtual bool IsA (const albaTypeID &type_id) const
 
virtual albaObjectNewObjectInstance () const =0
 
virtual const albaTypeIDGetTypeId () const
 
virtual void Print (std::ostream &os, const int indent=0) const
 
 albaObject (const albaObject &c)
 
- Public Member Functions inherited from albaObserver
 albaObserver ()
 
virtual ~albaObserver ()
 
virtual void OnEvent (albaEventBase *e)=0
 
- Public Member Functions inherited from albaEventBroadcaster
 albaEventBroadcaster (void *owner=NULL)
 
virtual ~albaEventBroadcaster ()
 
 albaEventBroadcaster (const albaEventBroadcaster &c)
 
void AddObserver (albaObserver *obj)
 
void AddObserver (albaObserver &obj)
 
albaObserverCallbackAddObserverCallback (void(*f)(void *sender, albaID eid, void *clientdata, void *calldata))
 
bool RemoveObserver (albaObserver *obj)
 
void RemoveAllObservers ()
 
bool IsObserver (albaObserver *obj)
 
bool HasObservers ()
 
void GetObservers (std::vector< albaObserver * > &olist)
 
void InvokeEvent (albaEventBase &e)
 
void InvokeEvent (albaEventBase *e)
 
void InvokeEvent (void *sender, albaID id=ID_NO_EVENT, void *data=NULL)
 
void SetChannel (albaID ch)
 
albaID GetChannel ()
 
virtual void SetListener (albaObserver *o)
 
- Public Member Functions inherited from albaEventSender
 albaEventSender ()
 
virtual void SetListener (albaObserver *o)
 
virtual albaObserverGetListener ()
 
virtual bool HasListener ()
 
virtual void InvokeEvent (albaEventBase &e)
 
virtual void InvokeEvent (albaEventBase *e)
 
virtual void InvokeEvent (void *sender, albaID id=ID_NO_EVENT, void *data=NULL)
 
- Public Member Functions inherited from albaStorable
 albaStorable ()
 
int Store (albaStorageElement *element)
 
int Restore (albaStorageElement *element)
 
albaObjectCastToObject ()
 
bool IsStorable ()
 

Protected Member Functions

 albaDeviceSet ()
 
virtual ~albaDeviceSet ()
 
virtual int InternalStore (albaStorageElement *node)
 
virtual int InternalRestore (albaStorageElement *node)
 
virtual int InternalInitialize ()
 
virtual void InternalShutdown ()
 
- Protected Member Functions inherited from albaDevice
 albaDevice ()
 
virtual ~albaDevice ()
 
virtual int InternalInitialize ()
 
virtual void CreateGui ()
 
virtual int InternalStore (albaStorageElement *node)
 
virtual int InternalRestore (albaStorageElement *node)
 
- Protected Member Functions inherited from albaAgentThreaded
 albaAgentThreaded ()
 
virtual ~albaAgentThreaded ()
 
virtual void RequestForDispatching ()
 
void StopThread ()
 
virtual int InternalInitialize ()
 
virtual void InternalShutdown ()
 
virtual int InternalUpdate ()
 
int GetActiveFlag ()
 
void SignalNewMessage ()
 
void WaitForNewMessage ()
 
- Protected Member Functions inherited from albaAgentEventQueue
 albaAgentEventQueue ()
 
virtual ~albaAgentEventQueue ()
 
albaEventBasePopEvent ()
 
int PopEvent (albaEventBase &event)
 
virtual int PopEvent (albaEventBase *&event)
 
bool GetDispatched ()
 
void SetDispatched (bool value=true)
 
virtual void RequestForDispatching ()
 
- Protected Member Functions inherited from albaAgent
 albaAgent ()
 
virtual ~albaAgent ()
 
virtual int InternalInitialize ()
 
virtual void InternalShutdown ()
 
void InvokeEvent (albaEventBase &event, albaID channel=-1)
 
void InvokeEvent (albaEventBase *event, albaID channel=-1)
 
void InvokeEvent (void *sender, int id, albaID channel=MCH_UP, void *data=NULL)
 
virtual int InternalStore (albaStorageElement *node)=0
 
virtual int InternalRestore (albaStorageElement *node)=0
 

Protected Attributes

std::list< albaDevice * > m_Devices
 
albaMutexLockm_DevicesMutex
 
- Protected Attributes inherited from albaDevice
albaGUIm_Gui
 
albaID m_ID
 
int m_AutoStart
 
int m_Start
 
bool m_Locked
 
bool m_PersistentFalg
 
- Protected Attributes inherited from albaAgentThreaded
albaMultiThreaderm_Threader
 
mmuThreadInfoStructm_ThreadData
 
int m_ThreadId
 
int m_Threaded
 
int m_ActiveFlag
 
albaMutexLockm_Gate
 
- Protected Attributes inherited from albaAgentEventQueue
InternalEventQueue * m_EventQueue
 
albaMutexLockm_Mutex
 
int m_DispatchMode
 
int m_DequeueMode
 
int m_PushMode
 
bool m_Dispatched
 
- Protected Attributes inherited from albaAgent
albaString m_Name
 
bool m_Initialized
 
std::vector< albaEventBroadcaster * > m_Channels
 
- Protected Attributes inherited from albaReferenceCounted
int m_ReferenceCount
 
- Protected Attributes inherited from albaObject
bool m_HeapFlag
 
- Protected Attributes inherited from albaEventBroadcaster
albaObserversList m_Observers
 
albaID m_Channel
 
- Protected Attributes inherited from albaEventSender
albaObserverm_Listener
 
- Protected Attributes inherited from albaStorable
bool m_Storable
 

Additional Inherited Members

- Public Types inherited from albaDevice
enum  DEVICE_MINIMUM_ID { MIN_DEVICE_ID =1000000 }
 
enum  DEVICE_WIDGET_ID {
  ID_NAME =MINID , ID_ACTIVATE , ID_SHUTDOWN , ID_AUTO_START ,
  ID_LAST
}
 
- Public Types inherited from albaAgentEventQueue
enum  DispatchModalities { SelfProcessMode = 0 , BroadcastMode }
 
enum  PopModalities { SingleEventMode = 0 , MultipleEventMode }
 
enum  PushModalities { DispatchEventMode =0 , PollingMode }
 
- Static Public Member Functions inherited from albaObject
static const char * GetStaticTypeName ()
 
static bool IsStaticType (const char *type_name)
 
static bool IsStaticType (const albaTypeID &type_id)
 
static const albaTypeIDGetStaticTypeId ()
 
static albaObjectSafeDownCast (albaObject *o)
 
- Static Public Member Functions inherited from albaStorable
static albaStorableSafeCastToObject (albaObject *o)
 
- Protected Types inherited from albaEventBroadcaster
typedef std::list< albaObserver * > albaObserversList
 
- Static Protected Member Functions inherited from albaAgentThreaded
static void UpdateLoop (mmuThreadInfoStruct *data)
 

Detailed Description

This class manages a set of usb-devices, and stores a list of all child devices' pointers.

It also dispatches some commands to child devices, e.g. initializzation commands. Being also an event queue, this class gathers events coming from all devices (e.g. running on different threads) and serializes their dispatching.

See also
albaDeviceManager albaEvent

Definition at line 38 of file albaDeviceSet.h.

Constructor & Destructor Documentation

◆ albaDeviceSet()

albaDeviceSet::albaDeviceSet ( )
protected

◆ ~albaDeviceSet()

virtual albaDeviceSet::~albaDeviceSet ( )
protectedvirtual

Member Function Documentation

◆ albaTypeMacro()

albaDeviceSet::albaTypeMacro ( albaDeviceSet  ,
albaDevice   
)

New channel for settings.

New channel for settings

◆ AddDevice()

virtual void albaDeviceSet::AddDevice ( albaDevice device)
virtual

Add a new device.

If the returned value is false the operation has failed!

◆ GetDeviceByIndex()

albaDevice * albaDeviceSet::GetDeviceByIndex ( int  idx)

Return a device in the set given its ID.

◆ GetDevice() [1/2]

albaDevice * albaDeviceSet::GetDevice ( albaID  id)

Return a device in the set given its ID.

◆ GetDevice() [2/2]

albaDevice * albaDeviceSet::GetDevice ( const char *  name)

Return a device in the set given its name.

◆ GetNumberOfDevices()

int albaDeviceSet::GetNumberOfDevices ( )

Return the number of devices assigned to this manager.

◆ RemoveDeviceByIndex()

int albaDeviceSet::RemoveDeviceByIndex ( int  idx,
bool  force = false 
)

Remove a device from the manager's list given its ID.

◆ RemoveDevice() [1/3]

int albaDeviceSet::RemoveDevice ( albaID  id,
bool  force = false 
)

Remove a device from the manager's list given its ID.

◆ RemoveDevice() [2/3]

int albaDeviceSet::RemoveDevice ( albaDevice device,
bool  force = false 
)

Remove a device from the manager's list.

◆ RemoveDevice() [3/3]

int albaDeviceSet::RemoveDevice ( const char *  name,
bool  force = false 
)

Remove a device from the manager's list given its name.

◆ RemoveAllDevices()

void albaDeviceSet::RemoveAllDevices ( bool  force = false)

Remove all devices (as as RemoveAllSenders())

◆ OnEvent()

virtual void albaDeviceSet::OnEvent ( albaEventBase event)
virtual

Reimplemented to manage AddDevice event.

Reimplemented from albaDevice.

◆ GetDevices()

std::list< albaDevice * > * albaDeviceSet::GetDevices ( )
inline

Return the list of devices pluged into this device set.

Definition at line 99 of file albaDeviceSet.h.

◆ InternalStore()

virtual int albaDeviceSet::InternalStore ( albaStorageElement node)
protectedvirtual

This is used to allow nested serialization of subclasses.

This function is called by Store and is reimplemented in subclasses. Each subclass can store its own subelements which are closed inside the "Device" element. Reimplemented functions should first call Superclass implementation.

Reimplemented from albaDevice.

◆ InternalRestore()

virtual int albaDeviceSet::InternalRestore ( albaStorageElement node)
protectedvirtual

This function fills in the device with settings restored from the node.

Subclasses should reimplement it to restore custom settings. Reimplemented functions should first call Superclass implementation.

Reimplemented from albaDevice.

◆ InternalInitialize()

virtual int albaDeviceSet::InternalInitialize ( )
protectedvirtual

Initialization automatically initialize subdevices.

Reimplemented from albaDevice.

◆ InternalShutdown()

virtual void albaDeviceSet::InternalShutdown ( )
protectedvirtual

shutdown also subdevices

Reimplemented from albaAgentThreaded.

Member Data Documentation

◆ m_Devices

std::list<albaDevice *> albaDeviceSet::m_Devices
protected

Definition at line 114 of file albaDeviceSet.h.

◆ m_DevicesMutex

albaMutexLock* albaDeviceSet::m_DevicesMutex
protected

Definition at line 116 of file albaDeviceSet.h.


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