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 
12 using Atlas::Objects::Root;
13 using Atlas::Objects::smart_dynamic_cast;
14 using Atlas::Objects::Operation::RootOperation;
15 using Atlas::Objects::Entity::RootEntity;
16 
17 namespace Eris
18 {
19 
20 Router::~Router() = default;
21 
22 Router::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 
33 Router::RouterResult Router::handleOperation(const RootOperation& )
34 {
35  warning() << "doing default routing of operation";
36  return IGNORED;
37 }
38 
39 Router::RouterResult Router::handleEntity(const RootEntity& )
40 {
41  warning() << "doing default routing of entity";
42  return IGNORED;
43 }
44 
45 } // of namespace Eris
Eris
Definition: Account.cpp:33