Orxonox  0.0.5 Codename: Arcturus
Public Member Functions | Protected Member Functions | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
orxonox::NotificationQueue Class Reference

Displays Notifications from specific senders. More...

#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/modules/notifications/NotificationQueue.h>

Inheritance diagram for orxonox::NotificationQueue:
orxonox::BaseObject orxonox::Tickable orxonox::Synchronisable orxonox::OrxonoxClass orxonox::OrxonoxInterface orxonox::OrxonoxInterface orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::Listable orxonox::Listable orxonox::Listable orxonox::Identifiable orxonox::Identifiable orxonox::Identifiable orxonox::NotificationQueueCEGUI

Public Member Functions

 NotificationQueue (Context *context)
 Default constructor. More...
 
virtual ~NotificationQueue ()
 Destructor. More...
 
virtual void changedName (void) override
 Is called when the name of the NotificationQueue has changed. More...
 
void displayTimeChanged (void)
 Is called when the maximum number of seconds a Notification is displayed has changed. More...
 
int getDisplayTime (void) const
 Returns the time interval the Notification is displayed. More...
 
unsigned int getMaxSize (void) const
 Returns the maximum number of Notifications displayed. More...
 
const std::string & getName (void) const
 Get the name of the NotificationQueue. More...
 
unsigned int getSize (void) const
 Returns the current number of Notifications displayed. More...
 
const std::string & getTargets (void) const
 Produces all targets of the NotificationQueue concatenated as string, with commas (',') as separators. More...
 
const std::set< std::string > & getTargetsSet (void)
 Returns the targets of this NotificationQueue, reps. More...
 
bool isRegistered (void)
 Check whether the NotificationQueue is registered with the NotificationManager. More...
 
void maxSizeChanged (void)
 Is called when the maximum number of displayed Notifications has changed. More...
 
void setDisplayTime (int time)
 Sets the maximum number of seconds a Notification is displayed. More...
 
void setMaxSize (unsigned int size)
 Sets the maximum number of displayed Notifications. More...
 
void setTargets (const std::string &targets)
 Sets the targets of the NotificationQueue. More...
 
void targetsChanged (void)
 Is called when the NotificationQueue's targets have changed. More...
 
virtual void tick (float dt) override
 Updates the queue from time to time. More...
 
bool tidy (void)
 Pops all Notifications from the NotificationQueue. More...
 
void update (void)
 Updates the NotificationQueue. More...
 
void update (Notification *notification, const std::time_t &time)
 Updates the NotificationQueue by adding an new Notification. More...
 
virtual void XMLPort (Element &xmlelement, XMLPort::Mode mode) override
 XML loading and saving. More...
 
- Public Member Functions inherited from orxonox::BaseObject
 BaseObject (Context *context)
 Constructor: Registers the object in the BaseObject-list. More...
 
virtual ~BaseObject ()
 Destructor. More...
 
void addEventListener (BaseObject *listener)
 Adds an object which listens to the events of this object. More...
 
void addEventSource (BaseObject *source, const std::string &state)
 Adds a new event source for a specific state. More...
 
void addTemplate (const std::string &name)
 Adds a Template to the object. More...
 
void addTemplate (Template *temp)
 Adds a Template to the object. More...
 
virtual void changedActivity ()
 This function gets called if the activity of the object changes. More...
 
virtual void changedMainStateName ()
 This function gets called if the main state name of the object changes. More...
 
virtual void changedVisibility ()
 This function gets called if the visibility of the object changes. More...
 
void fireEvent (const std::string &name="")
 Fires an event (without a state). More...
 
void fireEvent (bool activate, const std::string &name="")
 Fires an event which activates or deactivates a state. More...
 
void fireEvent (bool activate, BaseObject *originator, const std::string &name="")
 Fires an event which activates or deactivates a state with agiven originator (the object which triggered the event). More...
 
void fireEvent (Event &event)
 Fires an event, using the Event struct. More...
 
BaseObjectgetCreator () const
 
BaseObjectgetEventListener (unsigned int index) const
 Returns an event listener with a given index. More...
 
BaseObjectgetEventSource (unsigned int index, const std::string &state) const
 Returns an eventsource with a given index. More...
 
const XMLFilegetFile () const
 Returns a pointer to the XMLFile that loaded this object. More...
 
const std::string & getFilename () const
 Returns the levelfile that loaded this object. More...
 
GametypegetGametype () const
 
LevelgetLevel () const
 
const std::string & getLoaderIndentation () const
 Returns the indentation of the debug output in the Loader. More...
 
const std::string & getMainStateName () const
 Returns the name of the main state. More...
 
const std::string & getName () const
 Returns the name of the object. More...
 
NamespacegetNamespace () const
 
const std::string & getOldName () const
 Returns the old name of the object. More...
 
ScenegetScene () const
 
virtual uint32_t getSceneID () const
 
const std::set< Template * > & getTemplates () const
 Returns the set of all aplied templates. More...
 
const mboolisActive () const
 Returns the state of the objects activity. More...
 
bool isInitialized () const
 Returns if the object was initialized (passed the object registration). More...
 
const mboolisVisible () const
 Returns the state of the objects visibility. More...
 
virtual void processEvent (Event &event)
 Processing an event by calling the right main state. More...
 
void removeEventSource (BaseObject *source)
 Removes an eventsource (but doesn't unregister itself at the source). More...
 
void setActive (bool bActive)
 Sets the state of the objects activity. More...
 
void setCreator (BaseObject *creator)
 
void setFile (const XMLFile *file)
 Sets a pointer to the xml file that loaded this object. More...
 
void setGametype (const StrongOrWeakPtr< Gametype > &gametype)
 
void setLevel (const StrongOrWeakPtr< Level > &level)
 
void setLoaderIndentation (const std::string &indentation)
 Sets the indentation of the debug output in the Loader. More...
 
void setMainState (bool state)
 Sets the main state of the object to a given boolean value. More...
 
void setMainStateName (const std::string &name)
 Sets the name of the main state (used for event reactions). More...
 
void setName (const std::string &name)
 Sets the name of the object. More...
 
void setNamespace (const StrongOrWeakPtr< Namespace > &ns)
 
void setScene (const StrongOrWeakPtr< Scene > &scene, uint32_t sceneID)
 
void setVisible (bool bVisible)
 Sets the state of the objects visibility. More...
 
virtual void XMLEventPort (Element &xmlelement, XMLPort::Mode mode)
 Defines the possible event states of this object and parses eventsources from an XML file. More...
 
- Public Member Functions inherited from orxonox::OrxonoxClass
 OrxonoxClass ()
 
OrxonoxClassoperator= (const OrxonoxClass &)=default
 
- Public Member Functions inherited from orxonox::Configurable
 Configurable ()
 
void setConfigValues ()
 Function to collect the SetConfigValue-macro calls. More...
 
- Public Member Functions inherited from orxonox::Listable
 Listable ()
 Constructor: Allocates space in the element list. More...
 
 Listable (Context *context)
 Constructor: Allocates space in the element list and assigns the context. More...
 
virtual ~Listable ()
 Destructor: Removes the object from the object-lists. More...
 
ContextgetContext () const
 
void setContext (Context *context)
 Changes the context. More...
 
void unregisterObject ()
 Removes this object from the object-lists. More...
 
- Public Member Functions inherited from orxonox::Identifiable
 Identifiable ()
 Constructor: Sets the default values. More...
 
virtual ~Identifiable ()
 
ORX_FORCEINLINE voidgetDerivedPointer (unsigned int classID)
 Returns a valid pointer of any derived type that is registered in the class hierarchy. More...
 
template<class T >
ORX_FORCEINLINE T * getDerivedPointer (unsigned int classID)
 Version of getDerivedPointer with template. More...
 
template<class T >
ORX_FORCEINLINE const T * getDerivedPointer (unsigned int classID) const
 Const version of getDerivedPointer with template. More...
 
IdentifiergetIdentifier () const
 Returns the Identifier of the object. More...
 
bool isA (const Identifier *identifier)
 Returns true if the object's class is of the given type or a derivative. More...
 
template<class B >
bool isA (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is of the given type or a derivative. More...
 
bool isA (const Identifiable *object)
 Returns true if the object's class is of the given type or a derivative. More...
 
bool isChildOf (const Identifier *identifier)
 Returns true if the object's class is a child of the given type. More...
 
template<class B >
bool isChildOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a child of the given type. More...
 
bool isChildOf (const Identifiable *object)
 Returns true if the object's class is a child of the given type. More...
 
bool isDirectChildOf (const Identifier *identifier)
 Returns true if the object's class is a direct child of the given type. More...
 
template<class B >
bool isDirectChildOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isDirectChildOf (const Identifiable *object)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isDirectParentOf (const Identifier *identifier)
 Returns true if the object's class is a direct parent of the given type. More...
 
template<class B >
bool isDirectParentOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a direct parent of the given type. More...
 
bool isDirectParentOf (const Identifiable *object)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isExactlyA (const Identifier *identifier)
 Returns true if the object's class is exactly of the given type. More...
 
template<class B >
bool isExactlyA (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is exactly of the given type. More...
 
bool isExactlyA (const Identifiable *object)
 Returns true if the object's class is exactly of the given type. More...
 
bool isParentOf (const Identifier *identifier)
 Returns true if the object's class is a parent of the given type. More...
 
template<class B >
bool isParentOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a parent of the given type. More...
 
bool isParentOf (const Identifiable *object)
 Returns true if the object's class is a parent of the given type. More...
 
- Public Member Functions inherited from orxonox::Destroyable
 Destroyable ()
 Constructor: Sets the default values. More...
 
virtual ~Destroyable ()
 Destructor: Notifies all DestructionListener (for example weak pointers) that this object is being deleted. More...
 
void destroy ()
 Deletes the object if no strong pointers point to this object. More...
 
void destroyLater ()
 Works like destroy() but doesn't destroy the object until the current tick has ended. More...
 
unsigned int getReferenceCount () const
 Returns the number of strong pointers that point to this object. More...
 
- Public Member Functions inherited from orxonox::OrxonoxInterface
 OrxonoxInterface ()
 
- Public Member Functions inherited from orxonox::Synchronisable
virtual ~Synchronisable ()
 Destructor: Delete all callback objects and remove objectID_ from the objectMap_. More...
 
uint32_t getClassID () const
 
unsigned int getContextID () const
 
uint32_t getNrOfVariables ()
 
uint32_t getObjectID () const
 
unsigned int getPriority () const
 
uint8_t getSyncMode () const
 
uint32_t getVarSize (VariableID ID)
 
template<>
_NetworkExport void registerVariable (std::string &variable, uint8_t mode, NetworkCallbackBase *cb, bool bidirectional)
 
template<>
void registerVariable (std::string &variable, uint8_t mode, NetworkCallbackBase *cb, bool bidirectional)
 
void setSyncMode (uint8_t mode)
 This function sets the synchronisation mode of the object If set to 0x0 variables will not be synchronised at all If set to 0x1 variables will only be synchronised to the client If set to 0x2 variables will only be synchronised to the server If set to 0x3 variables will be synchronised bidirectionally (only if set so in registerVar) More...
 
template<>
_NetworkExport void unregisterVariable (std::string &variable)
 
template<>
void unregisterVariable (std::string &variable)
 

Protected Member Functions

virtual void clear (bool noGraphics=false)
 Clears the NotificationQueue by removing all NotificationContainers. More...
 
virtual void create (void)
 Creates the NotificationQueue. More...
 
virtual void notificationPopped (void)
 Is called when a notification was popped. More...
 
virtual void notificationPushed (Notification *notification)
 Is called when a notification was pushed. More...
 
virtual void notificationRemoved (unsigned int index)
 Is called when a notification was removed. More...
 
void registerVariables ()
 Registers Variables to be Synchronised. More...
 
- Protected Member Functions inherited from orxonox::BaseObject
void addEventState (const std::string &name, EventState *container)
 Adds a new event-state to the object. More...
 
EventStategetEventState (const std::string &name) const
 Returns the event-state with the given name. More...
 
- Protected Member Functions inherited from orxonox::Destroyable
virtual void preDestroy ()
 This virtual function is called if destroy() is called and no StrongPtr points to this object. More...
 
- Protected Member Functions inherited from orxonox::Tickable
 Tickable ()
 Constructor: Registers the object in the Tickable-list. More...
 
- Protected Member Functions inherited from orxonox::Synchronisable
 Synchronisable (Context *context)
 Constructor: Initializes all Variables and sets the right objectID_. More...
 
uint32_t findContextID (Context *context)
 Returns the id of the context. More...
 
template<class T >
void registerVariable (T &variable, uint8_t mode=0x1, NetworkCallbackBase *cb=nullptr, bool bidirectional=false)
 
template<class T >
void registerVariable (std::set< T > &variable, uint8_t mode=0x1, NetworkCallbackBase *cb=nullptr, bool bidirectional=false)
 
void setPriority (unsigned int freq)
 
template<class T >
void unregisterVariable (T &var)
 

Static Protected Attributes

static const unsigned int DEFAULT_DISPLAY_TIME = 30
 The default display time. More...
 
static const unsigned int DEFAULT_SIZE = 5
 The default maximum number of Notifications displayed. More...
 
static const int INF = -1
 Constant denoting infinity. More...
 

Private Member Functions

void pop (void)
 Removes (pops) the least recently added Notification form the NotificationQueue. More...
 
void push (Notification *notification, const std::time_t &time)
 Adds (pushes) a Notification to the NotificationQueue. More...
 
void remove (const std::multiset< NotificationContainer *, NotificationContainerCompare >::iterator &containerIterator)
 Removes the Notification that is stored in the input NotificationContainer. More...
 
void setName (const std::string &name)
 Sets the name of the NotificationQueue. More...
 

Private Attributes

time_t creationTime_
 The time this NotificationQueue was created. More...
 
int displayTime_
 The time a Notification is displayed. More...
 
unsigned int maxSize_
 The maximal number of Notifications displayed. More...
 
std::vector< NotificationContainer * > notifications_
 The NotificationContainers in the order they were added to the NotificationQueue. More...
 
std::multiset< NotificationContainer *, NotificationContainerCompareordering_
 The NotificationContainers ordered by the time they were registered. More...
 
bool registered_
 Helper variable to remember whether the NotificationQueue is registered already. More...
 
unsigned int size_
 The number of Notifications displayed. More...
 
std::set< std::string > targets_
 The targets the NotificationQueue displays Notifications of. More...
 
float tickTime_
 Helper variable, to not have to check for Notifications that have been displayed too long, every tick. More...
 
NotificationContainer timeLimit_
 Helper object to check against to determine whether Notifications have expired. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from orxonox::BaseObject
static void loadAllEventStates (Element &xmlelement, XMLPort::Mode mode, BaseObject *object, Identifier *identifier)
 Manually loads all event states, even if the class doesn't officially support them. More...
 
- Static Public Member Functions inherited from orxonox::Synchronisable
static bool deleteObject (uint32_t objectID_)
 Finds and deletes the Synchronisable with the appropriate objectID_. More...
 
static Synchronisablefabricate (uint8_t *&mem, uint8_t mode=0x0)
 This function fabricated a new synchrnisable (and children of it), sets calls updateData and create After calling this function the mem pointer will be increased by the size of the needed data. More...
 
static unsigned int getNumberOfDeletedObject ()
 
static SynchronisablegetSynchronisable (uint32_t objectID_)
 This function looks up the objectID_ in the objectMap_ and returns a pointer to the right Synchronisable. More...
 
static uint32_t popDeletedObject ()
 
static void setClient (bool b)
 This function sets the internal mode for synchronisation. More...
 
- Protected Attributes inherited from orxonox::BaseObject
mbool bActive_
 True = the object is active. More...
 
mbool bVisible_
 True = the object is visible. More...
 
FunctorPtr mainStateFunctor_
 
std::string mainStateName_
 
std::string name_
 The name of the object. More...
 
std::set< std::string > networkTemplateNames_
 
std::string oldName_
 The old name of the object. More...
 

Detailed Description

Displays Notifications from specific senders.

There are quite some parameters that influence the behavior of the NotificationQueue:

Author
Damian 'Mozork' Frick

Constructor & Destructor Documentation

orxonox::NotificationQueue::NotificationQueue ( Context context)

Default constructor.

Registers and initializes the object.

orxonox::NotificationQueue::~NotificationQueue ( )
virtual

Destructor.

Member Function Documentation

void orxonox::NotificationQueue::changedName ( void  )
overridevirtual

Is called when the name of the NotificationQueue has changed.

Clears and re-creates the NotificationQueue.

Reimplemented from orxonox::BaseObject.

Reimplemented in orxonox::NotificationQueueCEGUI.

void orxonox::NotificationQueue::clear ( bool  noGraphics = false)
protectedvirtual

Clears the NotificationQueue by removing all NotificationContainers.

Parameters
noGraphicsIf this is set to true the GUI is not informed of the clearing of the NotificationQueue. This is needed only internally.

Reimplemented in orxonox::NotificationQueueCEGUI.

void orxonox::NotificationQueue::create ( void  )
protectedvirtual

Creates the NotificationQueue.

Reimplemented in orxonox::NotificationQueueCEGUI.

void orxonox::NotificationQueue::displayTimeChanged ( void  )

Is called when the maximum number of seconds a Notification is displayed has changed.

int orxonox::NotificationQueue::getDisplayTime ( void  ) const
inline

Returns the time interval the Notification is displayed.

Returns
Returns the display time.
unsigned int orxonox::NotificationQueue::getMaxSize ( void  ) const
inline

Returns the maximum number of Notifications displayed.

Returns
Returns maximum size.
const std::string& orxonox::NotificationQueue::getName ( void  ) const
inline

Get the name of the NotificationQueue.

Returns
Returns the name.
unsigned int orxonox::NotificationQueue::getSize ( void  ) const
inline

Returns the current number of Notifications displayed.

Returns
Returns the size of the NotificationQueue.
const std::string & orxonox::NotificationQueue::getTargets ( void  ) const

Produces all targets of the NotificationQueue concatenated as string, with commas (',') as separators.

Returns
Returns the targets as a string.
const std::set<std::string>& orxonox::NotificationQueue::getTargetsSet ( void  )
inline

Returns the targets of this NotificationQueue, reps.

the senders which Notifications are displayed in this NotificationQueue.

Returns
Returns a set of strings holding the different targets.
bool orxonox::NotificationQueue::isRegistered ( void  )
inline

Check whether the NotificationQueue is registered with the NotificationManager.

Returns
Returns true if it is registered, false if not.
void orxonox::NotificationQueue::maxSizeChanged ( void  )

Is called when the maximum number of displayed Notifications has changed.

virtual void orxonox::NotificationQueue::notificationPopped ( void  )
inlineprotectedvirtual

Is called when a notification was popped.

Reimplemented in orxonox::NotificationQueueCEGUI.

virtual void orxonox::NotificationQueue::notificationPushed ( Notification notification)
inlineprotectedvirtual

Is called when a notification was pushed.

Parameters
notificationThe Notification that was pushed.

Reimplemented in orxonox::NotificationQueueCEGUI.

virtual void orxonox::NotificationQueue::notificationRemoved ( unsigned int  index)
inlineprotectedvirtual

Is called when a notification was removed.

Parameters
indexThe index the removed notification was at.

Reimplemented in orxonox::NotificationQueueCEGUI.

void orxonox::NotificationQueue::pop ( void  )
private

Removes (pops) the least recently added Notification form the NotificationQueue.

void orxonox::NotificationQueue::push ( Notification notification,
const std::time_t &  time 
)
private

Adds (pushes) a Notification to the NotificationQueue.

It inserts it into the storage containers, creates a corresponding container and pushes the notification message to the GUI.

Parameters
notificationThe Notification to be pushed.
timeThe time when the Notification has been sent.
void orxonox::NotificationQueue::registerVariables ( void  )
protected

Registers Variables to be Synchronised.

Registers Variables which have to be synchronised to the network system.

void orxonox::NotificationQueue::remove ( const std::multiset< NotificationContainer *, NotificationContainerCompare >::iterator &  containerIterator)
private

Removes the Notification that is stored in the input NotificationContainer.

Parameters
containerIteratorAn iterator to the NotificationContainer to be removed.
void orxonox::NotificationQueue::setDisplayTime ( int  time)

Sets the maximum number of seconds a Notification is displayed.

Parameters
timeThe number of seconds a Notification is displayed.
void orxonox::NotificationQueue::setMaxSize ( unsigned int  size)

Sets the maximum number of displayed Notifications.

Parameters
sizeThe size to be set.
void orxonox::NotificationQueue::setName ( const std::string &  name)
private

Sets the name of the NotificationQueue.

Parameters
nameThe name to be set.
void orxonox::NotificationQueue::setTargets ( const std::string &  targets)

Sets the targets of the NotificationQueue.

The targets are the senders whose Notifications are displayed in this queue.

Parameters
targetsAccepts a string of targets, each separated by commas (','), spaces are ignored.
void orxonox::NotificationQueue::targetsChanged ( void  )

Is called when the NotificationQueue's targets have changed.

void orxonox::NotificationQueue::tick ( float  dt)
overridevirtual

Updates the queue from time to time.

Parameters
dtThe time interval that has passed since the last tick.

Reimplemented from orxonox::Tickable.

bool orxonox::NotificationQueue::tidy ( void  )

Pops all Notifications from the NotificationQueue.

Returns
Returns true if successful, false if not.
void orxonox::NotificationQueue::update ( void  )

Updates the NotificationQueue.

Updates by clearing the queue and requesting all relevant Notifications from the NotificationManager and inserting them into the queue. This is called by the NotificationManager when the Notifications have changed so much, that the NotificationQueue may have to re-initialize his operations.

void orxonox::NotificationQueue::update ( Notification notification,
const std::time_t &  time 
)

Updates the NotificationQueue by adding an new Notification.

Parameters
notificationPointer to the Notification.
timeThe time the Notification was sent.
void orxonox::NotificationQueue::XMLPort ( Element &  xmlelement,
XMLPort::Mode  mode 
)
overridevirtual

XML loading and saving.

Parameters
xmlelementThe XML-element
modeThe mode defines the operation that is being executed: loading or saving the object (from or to XML respectively)

Reimplemented from orxonox::BaseObject.

Reimplemented in orxonox::NotificationQueueCEGUI.

Member Data Documentation

time_t orxonox::NotificationQueue::creationTime_
private

The time this NotificationQueue was created.

const unsigned int orxonox::NotificationQueue::DEFAULT_DISPLAY_TIME = 30
staticprotected

The default display time.

const unsigned int orxonox::NotificationQueue::DEFAULT_SIZE = 5
staticprotected

The default maximum number of Notifications displayed.

int orxonox::NotificationQueue::displayTime_
private

The time a Notification is displayed.

const int orxonox::NotificationQueue::INF = -1
staticprotected

Constant denoting infinity.

unsigned int orxonox::NotificationQueue::maxSize_
private

The maximal number of Notifications displayed.

std::vector<NotificationContainer*> orxonox::NotificationQueue::notifications_
private

The NotificationContainers in the order they were added to the NotificationQueue.

std::multiset<NotificationContainer*, NotificationContainerCompare> orxonox::NotificationQueue::ordering_
private

The NotificationContainers ordered by the time they were registered.

bool orxonox::NotificationQueue::registered_
private

Helper variable to remember whether the NotificationQueue is registered already.

unsigned int orxonox::NotificationQueue::size_
private

The number of Notifications displayed.

std::set<std::string> orxonox::NotificationQueue::targets_
private

The targets the NotificationQueue displays Notifications of.

float orxonox::NotificationQueue::tickTime_
private

Helper variable, to not have to check for Notifications that have been displayed too long, every tick.

NotificationContainer orxonox::NotificationQueue::timeLimit_
private

Helper object to check against to determine whether Notifications have expired.


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