logog
logger optimized for games
|
#include <topic.hpp>
Public Member Functions | |
Topic (const LOGOG_LEVEL_TYPE level=LOGOG_LEVEL_ALL, const LOGOG_CHAR *sFileName=NULL, const int nLineNumber=0, const LOGOG_CHAR *sGroup=NULL, const LOGOG_CHAR *sCategory=NULL, const LOGOG_CHAR *sMessage=NULL, const double dTimestamp=0.0f) | |
virtual bool | IsTopic () const |
virtual int | Send (const Topic &node) |
virtual int | Transmit () |
virtual int | Receive (const Topic &node) |
virtual bool | CanSubscribeTo (const Node &otherNode) |
virtual bool | CanSubscribeCheckTopic (const Topic &other) |
virtual bool | PublishTo (Node &subscriber) |
virtual void | Format (const LOGOG_CHAR *cFormatMessage,...) |
const LOGOG_STRING & | FileName () const |
void | FileName (const LOGOG_STRING &s) |
const LOGOG_STRING & | Message () const |
void | Message (const LOGOG_STRING &s) |
const LOGOG_STRING & | Category () const |
void | Category (const LOGOG_STRING &s) |
const LOGOG_STRING & | Group () const |
void | Group (const LOGOG_STRING &s) |
int | LineNumber () const |
void | LineNumber (const int num) |
LOGOG_LEVEL_TYPE | Level () const |
void | Level (LOGOG_LEVEL_TYPE level) |
LOGOG_TIME | Timestamp () const |
void | Timestamp (const LOGOG_TIME t) |
TOPIC_FLAGS | GetTopicFlags () const |
![]() | |
Node () | |
~Node () | |
virtual void | Initialize () |
virtual bool | CanPublish () const |
virtual bool | CanSubscribe () const |
virtual bool | PublishToMultiple (LockableNodesType &nodes) |
virtual bool | UnpublishTo (Node &subscriber) |
virtual bool | UnpublishToMultiple (LockableNodesType &nodes) |
virtual bool | SubscribeTo (Node &publisher) |
virtual bool | SubscribeToMultiple (LockableNodesType &nodes) |
virtual bool | UnsubscribeTo (Node &publisher) |
virtual bool | UnsubscribeToMultiple (LockableNodesType &nodes) |
void | Clear () |
![]() | |
Object () | |
virtual | ~Object () |
void * | operator new (size_t nSize) |
void * | operator new[] (size_t nSize) |
void | operator delete (void *ptr) |
void | operator delete[] (void *ptr) |
Protected Attributes | |
LOGOG_STRING | m_vStringProps [TOPIC_STRING_COUNT] |
int | m_vIntProps [TOPIC_INT_COUNT] |
LOGOG_TIME | m_tTime |
TOPIC_FLAGS | m_TopicFlags |
![]() | |
LockableNodesType | m_Subscribers |
LockableNodesType | m_Publishers |
Friends | |
class | TopicLevel |
class | TopicGroup |
class | FilterDefault |
Additional Inherited Members | |
![]() | |
static void * | Allocate (size_t nSize) |
static void | Deallocate (void *ptr) |
![]() | |
void * | m_pUserData1 |
void * | m_pUserData2 |
A subject that nodes can choose to discuss with one another. Subscribers generally have very general topics, while publishers generally have very specific topics.
Topic | ( | const LOGOG_LEVEL_TYPE | level = LOGOG_LEVEL_ALL , |
const LOGOG_CHAR * | sFileName = NULL , |
||
const int | nLineNumber = 0 , |
||
const LOGOG_CHAR * | sGroup = NULL , |
||
const LOGOG_CHAR * | sCategory = NULL , |
||
const LOGOG_CHAR * | sMessage = NULL , |
||
const double | dTimestamp = 0.0f |
||
) |
Creates a topic. Note the defaults for creating a topic – these defaults are equivalent to "no setting" for those fields.
|
virtual |
Reimplemented in TopicLevel, and TopicGroup.
|
virtual |
Is this topic interested in receiving notifications from another topic? This function implements a generic (slow) test that should work for all topic types. This function only checks fields that have previously been set on this topic – fields that have not been set will not limit this topic's ability to subscribe. If any of the previously set fields does not "match" the other topic, this function will return false. The matching function behaves slightly differently from field to field.
otherNode | The topic which we are considering subscribing to |
Reimplemented from Node.
const LOGOG_STRING& Category | ( | ) | const |
void Category | ( | const LOGOG_STRING & | s | ) |
const LOGOG_STRING& FileName | ( | ) | const |
void FileName | ( | const LOGOG_STRING & | s | ) |
|
virtual |
Formats the message in this topic given a sprintf-style set of arguments. This function can be used to set the current message in this topic to a string with a variable number of parameters.
TOPIC_FLAGS GetTopicFlags | ( | ) | const |
const LOGOG_STRING& Group | ( | ) | const |
void Group | ( | const LOGOG_STRING & | s | ) |
|
virtual |
LOGOG_LEVEL_TYPE Level | ( | ) | const |
void Level | ( | LOGOG_LEVEL_TYPE | level | ) |
int LineNumber | ( | ) | const |
void LineNumber | ( | const int | num | ) |
const LOGOG_STRING& Message | ( | ) | const |
void Message | ( | const LOGOG_STRING & | s | ) |
|
virtual |
|
virtual |
Permits this node to receive a publication from another node, and act upon it.
node | The node constituting the publication |
Reimplemented in FilterDefault, and Target.
|
virtual |
Causes this topic to publish another topic to all its subscribers.
Reimplemented in Checkpoint.
LOGOG_TIME Timestamp | ( | ) | const |
void Timestamp | ( | const LOGOG_TIME | t | ) |
|
virtual |
Causes this topic to publish itself to all its subscribers.
|
friend |
|
friend |
|
friend |
|
protected |
A bitfield representing the "important" fields in this topic. Not all fields are considered to contain important information all the time. A logical OR of the TOPIC_*_FLAG fields.
|
protected |
The time associated with this topic. Usually this field is updated when a topic is triggered. Times need not be associated with a particular topic, in which case this value is zero.
|
protected |
An array (not an STL vector) of integer properties for this topic.
|
protected |
An array (not an STL vector) of string properties for this topic.