eris 1.4.0
A WorldForge client library.
Router.cpp
1#ifdef HAVE_CONFIG_H
2 #include "config.h"
3#endif
4
5#include "Router.h"
6#include "Exceptions.h"
7#include "LogStream.h"
8
9#include <Atlas/Objects/RootEntity.h>
10#include <Atlas/Objects/RootOperation.h>
11
12using Atlas::Objects::Root;
13using Atlas::Objects::smart_dynamic_cast;
14using Atlas::Objects::Operation::RootOperation;
15using Atlas::Objects::Entity::RootEntity;
16
17namespace Eris
18{
19
20Router::~Router() = default;
21
22Router::RouterResult Router::handleObject(const Root& obj)
23{
24 if (obj->instanceOf(Atlas::Objects::Operation::ROOT_OPERATION_NO))
25 return handleOperation(smart_dynamic_cast<RootOperation>(obj));
26
27 if (obj->instanceOf(Atlas::Objects::Entity::ROOT_ENTITY_NO))
28 return handleEntity(smart_dynamic_cast<RootEntity>(obj));
29
30 throw InvalidOperation("router got an object that is not an op or entity");
31}
32
33Router::RouterResult Router::handleOperation(const RootOperation& )
34{
35 warning() << "doing default routing of operation";
36 return IGNORED;
37}
38
39Router::RouterResult Router::handleEntity(const RootEntity& )
40{
41 warning() << "doing default routing of entity";
42 return IGNORED;
43}
44
45} // of namespace Eris
Definition: Account.cpp:33