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

// 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_