Gamedev Framework (gf) 1.2.0
A C++17 framework for 2D games
Classes | Typedefs | Enumerations
Messages

Application messages. More...

Classes

struct  gf::Message
 The base class for all messages. More...
 
class  gf::MessageManager
 A message manager. More...
 

Typedefs

using gf::MessageHandler = std::function< MessageStatus(Id, Message *)>
 A message handler. More...
 
using gf::MessageHandlerId = uint64_t
 An identifier for a message handler. More...
 

Enumerations

enum class  gf::MessageStatus {
  gf::MessageStatus::Keep ,
  gf::MessageStatus::Die
}
 A message status. More...
 

Detailed Description

Application messages.

Typedef Documentation

◆ MessageHandler

using gf::MessageHandler = typedef std::function<MessageStatus(Id, Message *)>

A message handler.

gf::MessageHandler is a function that can be called when a message is sent in a message handler. It can be a free function:

gf::MessageStatus onHeroPosition(gf::Id type, gf::Message *msg) {
assert(type == HeroPosition::type);
auto heroPosition = static_cast<HeroPosition*>(msg);
// do something with heroPosition->position ...
}
// ...
gf::MessageHandler handler = onHeroPosition;
MessageStatus
A message status.
Definition: Message.h:71
std::function< MessageStatus(Id, Message *)> MessageHandler
A message handler.
Definition: Message.h:121
uint64_t Id
An identifier.
Definition: Id.h:37
The base class for all messages.
Definition: Message.h:53

It can also be a member function (which is, in fact, the most probable use case).

struct Foo {
gf::MessageStatus onHeroPosition(gf::Id type, gf::Message *msg) {
assert(type == HeroPosition::type);
auto heroPosition = static_cast<HeroPosition*>(msg);
// do something with heroPosition->position ...
}
};
// ...
Foo foo;
gf::MessageHandler handler = std::bind(&Foo::onHeroPosition, &foo);
See also
gf::MessageManager, gf::Message, gf::Id

◆ MessageHandlerId

using gf::MessageHandlerId = typedef uint64_t

An identifier for a message handler.

See also
gf::MessageHandler

Enumeration Type Documentation

◆ MessageStatus

enum class gf::MessageStatus
strong

A message status.

gf::MessageStatus indicates if a handler should be kept by the message manager or can be removed so that it will not receive any more messages.

See also
gf::MessageManager, gf::MessageHandler
Enumerator
Keep 

The handler must be kept

Die 

The handler can be removed