source: finroc_plugins_network_transport/runtime_info/definitions.cpp @ 18:fd9f94b5d096

17.03
Last change on this file since 18:fd9f94b5d096 was 18:fd9f94b5d096, checked in by Max Reichardt <mreichardt@…>, 7 years ago

Refactors and greatly extends common functionality on runtime info classes (they used to be in 'structure_info' subdirectory). Runtime info serialization of diverse elements is now located in a common place - and fully based on the new register serialization mechanism from rrlib_serialization.

File size: 4.2 KB
Line 
1//
2// You received this file as part of Finroc
3// A framework for intelligent robot control
4//
5// Copyright (C) Finroc GbR (finroc.org)
6//
7// This program is free software; you can redistribute it and/or modify
8// it under the terms of the GNU General Public License as published by
9// the Free Software Foundation; either version 2 of the License, or
10// (at your option) any later version.
11//
12// This program is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU General Public License for more details.
16//
17// You should have received a copy of the GNU General Public License along
18// with this program; if not, write to the Free Software Foundation, Inc.,
19// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20//
21//----------------------------------------------------------------------
22/*!\file    plugins/network_transport/runtime_info/definitions.cpp
23 *
24 * \author  Max Reichardt
25 *
26 * \date    2017-02-26
27 *
28 */
29//----------------------------------------------------------------------
30#include "plugins/network_transport/runtime_info/definitions.h"
31
32//----------------------------------------------------------------------
33// External includes (system with <>, local with "")
34//----------------------------------------------------------------------
35#include "rrlib/rtti/rtti.h"
36
37//----------------------------------------------------------------------
38// Internal includes with ""
39//----------------------------------------------------------------------
40#include "plugins/network_transport/runtime_info/tRemoteType.h"
41#include "plugins/network_transport/runtime_info/tRemoteTypeConversion.h"
42#include "plugins/network_transport/runtime_info/tRemoteStaticCast.h"
43#include "plugins/network_transport/runtime_info/tRemoteUriSchemeHandler.h"
44#include "plugins/network_transport/runtime_info/tRemoteCreateAction.h"
45
46//----------------------------------------------------------------------
47// Debugging
48//----------------------------------------------------------------------
49#include <cassert>
50
51//----------------------------------------------------------------------
52// Namespace usage
53//----------------------------------------------------------------------
54
55//----------------------------------------------------------------------
56// Namespace declaration
57//----------------------------------------------------------------------
58namespace finroc
59{
60namespace network_transport
61{
62namespace runtime_info
63{
64
65//----------------------------------------------------------------------
66// Forward declarations / typedefs / enums
67//----------------------------------------------------------------------
68
69//----------------------------------------------------------------------
70// Const values
71//----------------------------------------------------------------------
72
73//----------------------------------------------------------------------
74// Implementation
75//----------------------------------------------------------------------
76
77namespace
78{
79/*! Sets up published registers */
80struct tSetup
81{
82  tSetup()
83  {
84    rrlib::serialization::PublishedRegisters::Register<tRemoteType>(rrlib::rtti::tType::GetTypeRegister(), static_cast<int>(tRegisterUIDs::TYPE));
85    rrlib::serialization::PublishedRegisters::Register<tRemoteTypeConversion>(rrlib::rtti::conversion::tRegisteredConversionOperation::GetRegisteredOperations().operations, static_cast<int>(tRegisterUIDs::CONVERSION_OPERATION));
86    rrlib::serialization::PublishedRegisters::Register<tRemoteStaticCast>(rrlib::rtti::conversion::tRegisteredConversionOperation::GetRegisteredOperations().static_casts, static_cast<int>(tRegisterUIDs::STATIC_CAST));
87    rrlib::serialization::PublishedRegisters::Register<tRemoteUriSchemeHandler>(core::tUriConnector::GetSchemeHandlerRegister(), static_cast<int>(tRegisterUIDs::SCHEME_HANDLER));
88    rrlib::serialization::PublishedRegisters::Register<tRemoteCreateAction>(runtime_construction::tCreateFrameworkElementAction::GetConstructibleElements(), static_cast<int>(tRegisterUIDs::CREATE_ACTION));
89  }
90} setup;
91}
92
93//----------------------------------------------------------------------
94// End of namespace declaration
95//----------------------------------------------------------------------
96}
97}
98}
Note: See TracBrowser for help on using the repository browser.