Classes | Namespaces | Macros | Functions
serialization_extensions.h File Reference

Boost serialization class extension macros and helpers. More...

#include <tesseract_common/macros.h>
#include <boost/mpl/string.hpp>
#include <tesseract_common/sfinae_utils.h>
Include dependency graph for serialization_extensions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tesseract_common::serialization::binary::extension< T >
 
struct  tesseract_common::serialization::xml::extension< T >
 
struct  tesseract_common::serialization::binary::extension< T >::traits_class_extension< U >
 
struct  tesseract_common::serialization::xml::extension< T >::traits_class_extension< U >
 

Namespaces

 tesseract_common
 
 tesseract_common::serialization
 
 tesseract_common::serialization::binary
 
 tesseract_common::serialization::xml
 

Macros

#define TESSERACT_CLASS_EXTENSION(T, X, B)
 A macro for defining serialization extension for classes. More...
 

Functions

TESSERACT_COMMON_IGNORE_WARNINGS_PUSH TESSERACT_COMMON_IGNORE_WARNINGS_POP CREATE_MEMBER_CHECK (extension_type)
 

Detailed Description

Boost serialization class extension macros and helpers.

Author
Levi Armstrong
Date
July 24, 2022
Version
TODO
Bug:
No known bugs
License
Software License Agreement (Apache License)
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file serialization_extensions.h.

Macro Definition Documentation

◆ TESSERACT_CLASS_EXTENSION

#define TESSERACT_CLASS_EXTENSION (   T,
  X,
 
)
Value:
namespace tesseract_common \
{ \
namespace serialization::xml \
{ \
template <> \
struct extension<T> \
{ \
static constexpr const char* value = X; \
static_assert(value[0] == '.', "XML extension value must start with a '.'"); \
}; \
} \
namespace serialization::binary \
{ \
template <> \
struct extension<T> \
{ \
static constexpr const char* value = B; \
static_assert(value[0] == '.', "Binary extension value must start with a '.'"); \
}; \
} \
}

A macro for defining serialization extension for classes.

The extension should include the '.', for example .yaml

Parameters
Tthe class to define extensions for
Xthe xml serialziation extension for the provided class
Bthe binary serialzation extension for the provided class

Definition at line 85 of file serialization_extensions.h.

Function Documentation

◆ CREATE_MEMBER_CHECK()

tesseract_common
Definition: allowed_collision_matrix.h:19


tesseract_common
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:40