10#ifndef GUIDATAPOOL__H_
11#define GUIDATAPOOL__H_
14#include "eC_TList_doubleLinked.h"
15#include "eC_Semaphore.h"
16#include "GUISubject.h"
17#include "GUIObserver.h"
65 m_pkParentObject(pkParentObject)
73 m_pkParentObject = pkParentObject;
76#ifndef GUILIANI_NO_DATAPOOL
88 virtual void OnNotification(
const eC_String& kMessage) {}
93#ifndef GUILIANI_NO_DATAPOOL
118 virtual const CGUIValue&
Get(
const eC_UInt uiX = 0,
const eC_UInt uiY = 0);
154 void SetQuantity(
const eC_UInt uiX,
const eC_UInt uiY,
const eC_Bool& bPreserve =
false);
162 virtual void Set(
const CGUIValue& kValue,
const eC_UInt uiX = 0,
const eC_UInt uiY = 0);
458#define DATAPOOL_FILE_VERSION 3
533 static eC_Bool
Lock() {
return ms_kDataPoolSema.Enter(); }
537 static eC_Bool
Unlock() {
return ms_kDataPoolSema.Leave(); }
612#ifdef GUILIANI_STREAM_GUI
619#ifdef GUILIANI_WRITE_GUI
658 static void NotifyOfCreation(
CGUIObject* pkObject);
661 static void ProcessNotifications();
667 static void DeInit();
674 static eC_Bool SetNOFDataPoolResources(
const eC_UInt uiNumberOfDataPoolResources);
677 static eC_TArray<CDataPoolEntry*> ms_kDataPool;
685 class DataRegistryElement
689 m_eObjectHandle(eObjectHandle)
692 DataRegistryElement() :
693 m_eObjectHandle(NO_HANDLE)
699 bool operator==(
const DataRegistryElement& Value)
701 return Value.m_eObjectHandle == m_eObjectHandle;
706 static DataRegistryList ms_kDataRegistry;
709 static eC_Semaphore ms_kDataPoolSema;
710 static eC_Semaphore ms_kNotificationQueueSema;
741 static void Clear() {}
746 static void NotifyOfCreation(
CGUIObject* pkObject) {}
747 static void ProcessNotifications() {}
748 static void Init() {}
749 static void DeInit() {}
Helper Macros in Guiliani
DataPoolResource_t
List of data pool resource ids.
Definition: GUIDataPoolResource.h:35
Helper Macros in Guiliani
ObjectHandle_t
List of object resource ids.
Definition: GUIObjectHandleResource.h:55
Connects a GUIObject to the DataPool. DataPoolConnectors are used to observe values within the DataPo...
Definition: GUIDataPool.h:58
CDataPoolConnector(CGUIObject *pkParentObject=NULL)
Definition: GUIDataPool.h:63
void SetParentObject(CGUIObject *pkParentObject)
Definition: GUIDataPool.h:71
virtual void OnNotification(CDataPoolEntry &kObservedValue)
A single entry in the DataPool. The DataPoolEntry class represents a single entry (unique id + a valu...
Definition: GUIDataPool.h:108
CDataPoolEntry()
Default constructor.
DataPoolCallback m_pDataPoolCallback
Callback function, which will be called within NotifyDataPoolConnectors.
Definition: GUIDataPool.h:212
CDataPoolEntry(const CGUIValue &kValue)
eC_UInt m_uiMaxY
Maximum Y-Size of internal array.
Definition: GUIDataPool.h:203
void NotifyDataPoolConnectors()
Call OnNotification(CDataPoolEntry&) on observing DataPoolConnectors and call registered callback fun...
virtual ~CDataPoolEntry()
protected Destructor: only friend class CGUIDataPool is allowed to delete DataPoolEntries
Definition: GUIDataPool.h:215
virtual void OnNotification(const CGUIValue &kValue, const CGUIObject *const pkUpdatedObject, const eC_UInt uiX=0, const eC_UInt uiY=0)
virtual void Set(const CGUIValue &kValue, const eC_UInt uiX=0, const eC_UInt uiY=0)
void GetQuantity(eC_UInt &uiX, eC_UInt &uiY)
Definition: GUIDataPool.h:124
void SetQuantity(const eC_UInt uiX, const eC_UInt uiY, const eC_Bool &bPreserve=false)
eC_UInt m_uiMaxX
Maximum X-Size of internal array.
Definition: GUIDataPool.h:201
void SetCallback(DataPoolCallback pCallback)
Definition: GUIDataPool.h:182
virtual CDataPoolEntry & operator=(const CDataPoolEntry &kDataPoolEntry)
virtual const CGUIValue & Get(const eC_UInt uiX=0, const eC_UInt uiY=0)
DataPoolResource_t GetID() const
Definition: GUIDataPool.h:133
void AddObserver(CDataPoolConnector *pObserver)
Definition: GUIDataPool.h:174
eC_TArray< CGUIValue > m_kValue
Internal array of GUIValues.
Definition: GUIDataPool.h:206
DataPoolResource_t m_eDataID
DataPool resource ID associated with this entry.
Definition: GUIDataPool.h:209
Definition: GUIDataPool.h:465
static void Get(const DataPoolResource_t eDataID, CDataPoolEntry **ppkEntry)
static void GetQuantity(const DataPoolResource_t eDataID, eC_UInt &uiX, eC_UInt &uiY)
static DataPoolResource_t RegisterDynamicDataPoolResource()
eC_TListDoubleLinked< DataPoolResource_t > DataIDList
Convenience typedef for a list of DataPoolResource_t.
Definition: GUIDataPool.h:468
static void AddToNotificationQueue(CDataPoolEntry &kEntry)
static void Unregister(CGUIObject *pkObserver)
static void UnregisterCallback(const DataPoolResource_t eDataID)
static void Register(const DataPoolResource_t eDataID, CGUIObject *pkObserver)
static void SetQuantity(const DataPoolResource_t eDataID, const eC_UInt uiX, const eC_UInt uiY, const eC_Bool &bPreserve=false)
static eC_Bool Lock()
Definition: GUIDataPool.h:533
static void GetUpdate(CDataPoolConnector *pkObserver)
static void Get(const DataPoolResource_t eDataID, CGUIValue &kValue, const eC_UInt uiX=0, const eC_UInt uiY=0)
static void Unregister(CDataPoolConnector *pkObserver)
static void SetDataPoolEntry(const DataPoolResource_t eDataID, CDataPoolEntry *pkEntry)
static void Unregister(const DataPoolResource_t eDataID, CDataPoolConnector *pkObserver)
static void Set(const DataPoolResource_t eDataID, CGUIValue kValue, const eC_UInt uiX=0, const eC_UInt uiY=0)
static eC_Bool Unlock()
Definition: GUIDataPool.h:537
static void DumpDataPool()
static void WriteDataPoolToFile(const eC_String &rkPath)
static const eC_TListDoubleLinked< ObjectHandle_t > GetAutoRegisteredObservers(const DataPoolResource_t eDataID)
static void Register(const DataPoolResource_t eDataID, DataPoolCallback pCallback)
static void AutoRegister(const DataPoolResource_t eDataID, const ObjectHandle_t eObjectID)
static void RemoveAutoRegister(const DataPoolResource_t eDataID, const ObjectHandle_t eObjectID)
static void Unregister(const DataPoolResource_t eDataID, CGUIObject *pkObserver)
static eC_UInt GetNOFDataPoolResources()
Definition: GUIDataPool.h:639
static void ReadDataPoolFromFile(const eC_String &rkPath)
static void Register(const DataPoolResource_t eDataID, CDataPoolConnector *pkObserver)
static eC_UInt GetNumberOfPendingNotifications()
Definition: GUIDataPool.h:645
GUI base class for any Guiliani application.
Definition: GUI.h:47
This is the Guiliani base class all controls are derived from.
Definition: GUIObject.h:79
Observer Base class for Observer-Design-Pattern within Guiliani.
Definition: GUIObserver.h:28
Subject Base class for Observer-Design-Pattern within Guiliani.
Definition: GUISubject.h:34
void AddObserver(CGUIObserver *pObserver)
CGUIValue stores a single value in one specific type.
Definition: GUIValue.h:25
eC_UInt GetQuantity() const
Definition: eC_TList_doubleLinked.h:587
bool operator==(const NSmartPtr::SharedPtr< C1 > &a, const NSmartPtr::SharedPtr< C2 > &b)
Definition: SharedPtr.h:240