You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
5.9 KiB
205 lines
5.9 KiB
// License: Apache 2.0. See LICENSE file in root directory.
|
|
// Copyright(c) 2023 Intel Corporation. All Rights Reserved.
|
|
|
|
/*!
|
|
* @file blob.h
|
|
* This header file contains the declaration of the described types in the IDL file.
|
|
*
|
|
* This file was generated by the tool gen.
|
|
*/
|
|
|
|
#ifndef _FAST_DDS_GENERATED_UDDS_BLOB_H_
|
|
#define _FAST_DDS_GENERATED_UDDS_BLOB_H_
|
|
|
|
|
|
//#include <fastrtps/utils/fixed_size_string.hpp>
|
|
|
|
#include <stdint.h>
|
|
#include <array>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <map>
|
|
#include <bitset>
|
|
|
|
#if defined(_WIN32)
|
|
#if defined(EPROSIMA_USER_DLL_EXPORT)
|
|
#define eProsima_user_DllExport __declspec( dllexport )
|
|
#else
|
|
#define eProsima_user_DllExport
|
|
#endif // EPROSIMA_USER_DLL_EXPORT
|
|
#else
|
|
#define eProsima_user_DllExport
|
|
#endif // _WIN32
|
|
|
|
#if defined(_WIN32)
|
|
#if defined(EPROSIMA_USER_DLL_EXPORT)
|
|
#if defined(blob_SOURCE)
|
|
#define blob_DllAPI __declspec( dllexport )
|
|
#else
|
|
#define blob_DllAPI __declspec( dllimport )
|
|
#endif // blob_SOURCE
|
|
#else
|
|
#define blob_DllAPI
|
|
#endif // EPROSIMA_USER_DLL_EXPORT
|
|
#else
|
|
#define blob_DllAPI
|
|
#endif // _WIN32
|
|
|
|
namespace eprosima {
|
|
namespace fastcdr {
|
|
class Cdr;
|
|
} // namespace fastcdr
|
|
} // namespace eprosima
|
|
|
|
|
|
namespace udds {
|
|
/*!
|
|
* @brief This class represents the structure blob defined by the user in the IDL file.
|
|
* @ingroup BLOB
|
|
*/
|
|
class blob
|
|
{
|
|
public:
|
|
|
|
/*!
|
|
* @brief Default constructor.
|
|
*/
|
|
eProsima_user_DllExport blob();
|
|
|
|
/*!
|
|
* @brief Default destructor.
|
|
*/
|
|
eProsima_user_DllExport ~blob();
|
|
|
|
/*!
|
|
* @brief Copy constructor.
|
|
* @param x Reference to the object udds::blob that will be copied.
|
|
*/
|
|
eProsima_user_DllExport blob(
|
|
const blob& x);
|
|
|
|
/*!
|
|
* @brief Move constructor.
|
|
* @param x Reference to the object udds::blob that will be copied.
|
|
*/
|
|
eProsima_user_DllExport blob(
|
|
blob&& x) noexcept;
|
|
|
|
/*!
|
|
* @brief Copy assignment.
|
|
* @param x Reference to the object udds::blob that will be copied.
|
|
*/
|
|
eProsima_user_DllExport blob& operator =(
|
|
const blob& x);
|
|
|
|
/*!
|
|
* @brief Move assignment.
|
|
* @param x Reference to the object udds::blob that will be copied.
|
|
*/
|
|
eProsima_user_DllExport blob& operator =(
|
|
blob&& x) noexcept;
|
|
|
|
/*!
|
|
* @brief Comparison operator.
|
|
* @param x udds::blob object to compare.
|
|
*/
|
|
eProsima_user_DllExport bool operator ==(
|
|
const blob& x) const;
|
|
|
|
/*!
|
|
* @brief Comparison operator.
|
|
* @param x udds::blob object to compare.
|
|
*/
|
|
eProsima_user_DllExport bool operator !=(
|
|
const blob& x) const;
|
|
|
|
/*!
|
|
* @brief This function copies the value in member data
|
|
* @param _data New value to be copied in member data
|
|
*/
|
|
eProsima_user_DllExport void data(
|
|
const std::vector<uint8_t>& _data);
|
|
|
|
/*!
|
|
* @brief This function moves the value in member data
|
|
* @param _data New value to be moved in member data
|
|
*/
|
|
eProsima_user_DllExport void data(
|
|
std::vector<uint8_t>&& _data);
|
|
|
|
/*!
|
|
* @brief This function returns a constant reference to member data
|
|
* @return Constant reference to member data
|
|
*/
|
|
eProsima_user_DllExport const std::vector<uint8_t>& data() const;
|
|
|
|
/*!
|
|
* @brief This function returns a reference to member data
|
|
* @return Reference to member data
|
|
*/
|
|
eProsima_user_DllExport std::vector<uint8_t>& data();
|
|
|
|
/*!
|
|
* @brief This function returns the maximum serialized size of an object
|
|
* depending on the buffer alignment.
|
|
* @param current_alignment Buffer alignment.
|
|
* @return Maximum serialized size.
|
|
*/
|
|
eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
|
|
size_t current_alignment = 0);
|
|
|
|
/*!
|
|
* @brief This function returns the serialized size of a data depending on the buffer alignment.
|
|
* @param data Data which is calculated its serialized size.
|
|
* @param current_alignment Buffer alignment.
|
|
* @return Serialized size.
|
|
*/
|
|
eProsima_user_DllExport static size_t getCdrSerializedSize(
|
|
const udds::blob& data,
|
|
size_t current_alignment = 0);
|
|
|
|
|
|
/*!
|
|
* @brief This function serializes an object using CDR serialization.
|
|
* @param cdr CDR serialization object.
|
|
*/
|
|
eProsima_user_DllExport void serialize(
|
|
eprosima::fastcdr::Cdr& cdr) const;
|
|
|
|
/*!
|
|
* @brief This function deserializes an object using CDR serialization.
|
|
* @param cdr CDR serialization object.
|
|
*/
|
|
eProsima_user_DllExport void deserialize(
|
|
eprosima::fastcdr::Cdr& cdr);
|
|
|
|
|
|
|
|
/*!
|
|
* @brief This function returns the maximum serialized size of the Key of an object
|
|
* depending on the buffer alignment.
|
|
* @param current_alignment Buffer alignment.
|
|
* @return Maximum serialized size.
|
|
*/
|
|
eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
|
|
size_t current_alignment = 0);
|
|
|
|
/*!
|
|
* @brief This function tells you if the Key has been defined for this type
|
|
*/
|
|
eProsima_user_DllExport static bool isKeyDefined();
|
|
|
|
/*!
|
|
* @brief This function serializes the key members of an object using CDR serialization.
|
|
* @param cdr CDR serialization object.
|
|
*/
|
|
eProsima_user_DllExport void serializeKey(
|
|
eprosima::fastcdr::Cdr& cdr) const;
|
|
|
|
private:
|
|
|
|
std::vector<uint8_t> m_data;
|
|
};
|
|
} // namespace udds
|
|
|
|
#endif // _FAST_DDS_GENERATED_UDDS_BLOB_H_
|