Orxonox
0.0.5 Codename: Arcturus
|
Displays Notifications from specific senders. More...
#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/modules/notifications/NotificationQueue.h>
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... | |
BaseObject * | getCreator () const |
BaseObject * | getEventListener (unsigned int index) const |
Returns an event listener with a given index. More... | |
BaseObject * | getEventSource (unsigned int index, const std::string &state) const |
Returns an eventsource with a given index. More... | |
const XMLFile * | getFile () 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... | |
Gametype * | getGametype () const |
Level * | getLevel () 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... | |
Namespace * | getNamespace () const |
const std::string & | getOldName () const |
Returns the old name of the object. More... | |
Scene * | getScene () const |
virtual uint32_t | getSceneID () const |
const std::set< Template * > & | getTemplates () const |
Returns the set of all aplied templates. More... | |
const mbool & | isActive () const |
Returns the state of the objects activity. More... | |
bool | isInitialized () const |
Returns if the object was initialized (passed the object registration). More... | |
const mbool & | isVisible () 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 () | |
OrxonoxClass & | operator= (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... | |
Context * | getContext () 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 void * | getDerivedPointer (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... | |
Identifier * | getIdentifier () 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... | |
EventState * | getEventState (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 *, NotificationContainerCompare > | ordering_ |
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 Synchronisable * | fabricate (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 Synchronisable * | getSynchronisable (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... | |
Displays Notifications from specific senders.
There are quite some parameters that influence the behavior of the NotificationQueue:
orxonox::NotificationQueue::NotificationQueue | ( | Context * | context | ) |
Default constructor.
Registers and initializes the object.
|
virtual |
Destructor.
Is called when the name of the NotificationQueue has changed.
Clears and re-creates the NotificationQueue.
Reimplemented from orxonox::BaseObject.
Reimplemented in orxonox::NotificationQueueCEGUI.
|
protectedvirtual |
Clears the NotificationQueue by removing all NotificationContainers.
noGraphics | If 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.
Creates the NotificationQueue.
Reimplemented in orxonox::NotificationQueueCEGUI.
Is called when the maximum number of seconds a Notification is displayed has changed.
|
inline |
Returns the time interval the Notification is displayed.
|
inline |
Returns the maximum number of Notifications displayed.
|
inline |
Get the name of the NotificationQueue.
|
inline |
Returns the current number of Notifications displayed.
const std::string & orxonox::NotificationQueue::getTargets | ( | void | ) | const |
Produces all targets of the NotificationQueue concatenated as string, with commas (',') as separators.
|
inline |
Returns the targets of this NotificationQueue, reps.
the senders which Notifications are displayed in this NotificationQueue.
|
inline |
Check whether the NotificationQueue is registered with the NotificationManager.
Is called when the maximum number of displayed Notifications has changed.
Is called when a notification was popped.
Reimplemented in orxonox::NotificationQueueCEGUI.
|
inlineprotectedvirtual |
Is called when a notification was pushed.
notification | The Notification that was pushed. |
Reimplemented in orxonox::NotificationQueueCEGUI.
|
inlineprotectedvirtual |
Is called when a notification was removed.
index | The index the removed notification was at. |
Reimplemented in orxonox::NotificationQueueCEGUI.
Removes (pops) the least recently added Notification form the NotificationQueue.
|
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.
notification | The Notification to be pushed. |
time | The time when the Notification has been sent. |
Registers Variables to be Synchronised.
Registers Variables which have to be synchronised to the network system.
|
private |
Removes the Notification that is stored in the input NotificationContainer.
containerIterator | An iterator to the NotificationContainer to be removed. |
void orxonox::NotificationQueue::setDisplayTime | ( | int | time | ) |
Sets the maximum number of seconds a Notification is displayed.
time | The number of seconds a Notification is displayed. |
void orxonox::NotificationQueue::setMaxSize | ( | unsigned int | size | ) |
Sets the maximum number of displayed Notifications.
size | The size to be set. |
|
private |
Sets the name of the NotificationQueue.
name | The 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.
targets | Accepts a string of targets, each separated by commas (','), spaces are ignored. |
Is called when the NotificationQueue's targets have changed.
|
overridevirtual |
Updates the queue from time to time.
dt | The time interval that has passed since the last tick. |
Reimplemented from orxonox::Tickable.
bool orxonox::NotificationQueue::tidy | ( | void | ) |
Pops all Notifications from the NotificationQueue.
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.
notification | Pointer to the Notification. |
time | The time the Notification was sent. |
|
overridevirtual |
XML loading and saving.
xmlelement | The XML-element |
mode | The 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.
|
private |
The time this NotificationQueue was created.
|
staticprotected |
The default display time.
|
staticprotected |
The default maximum number of Notifications displayed.
|
private |
The time a Notification is displayed.
|
staticprotected |
Constant denoting infinity.
|
private |
The maximal number of Notifications displayed.
|
private |
The NotificationContainers in the order they were added to the NotificationQueue.
|
private |
The NotificationContainers ordered by the time they were registered.
|
private |
Helper variable to remember whether the NotificationQueue is registered already.
|
private |
The number of Notifications displayed.
|
private |
The targets the NotificationQueue displays Notifications of.
|
private |
Helper variable, to not have to check for Notifications that have been displayed too long, every tick.
|
private |
Helper object to check against to determine whether Notifications have expired.