// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// 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.
/*!
* @file Shape.h
* This header file contains the declaration of the described types in the IDL file.
*
* This file was generated by the tool fastddsgen.
*/
#ifndef _FAST_DDS_GENERATED_SHAPE_H_
#define _FAST_DDS_GENERATED_SHAPE_H_
#include <array>
#include <bitset>
#include <cstdint>
#include <map>
#include <string>
#include <vector>
#include <fastcdr/cdr/fixed_size_string.hpp>
#include <fastcdr/xcdr/optional.hpp>
#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(SHAPE_SOURCE)
#define SHAPE_DllAPI __declspec( dllexport )
#else
#define SHAPE_DllAPI __declspec( dllimport )
#endif // SHAPE_SOURCE
#else
#define SHAPE_DllAPI
#endif // EPROSIMA_USER_DLL_EXPORT
#else
#define SHAPE_DllAPI
#endif // _WIN32
namespace eprosima {
namespace fastcdr {
class Cdr;
class CdrSizeCalculator;
} // namespace fastcdr
} // namespace eprosima
/*!
* @brief This class represents the structure ShapeType defined by the user in the IDL file.
* @ingroup Shape
*/
class ShapeType
{
public:
/*!
* @brief Default constructor.
*/
eProsima_user_DllExport ShapeType();
/*!
* @brief Default destructor.
*/
eProsima_user_DllExport ~ShapeType();
/*!
* @brief Copy constructor.
* @param x Reference to the object ShapeType that will be copied.
*/
eProsima_user_DllExport ShapeType(
const ShapeType& x);
/*!
* @brief Move constructor.
* @param x Reference to the object ShapeType that will be copied.
*/
eProsima_user_DllExport ShapeType(
ShapeType&& x) noexcept;
/*!
* @brief Copy assignment.
* @param x Reference to the object ShapeType that will be copied.
*/
eProsima_user_DllExport ShapeType& operator =(
const ShapeType& x);
/*!
* @brief Move assignment.
* @param x Reference to the object ShapeType that will be copied.
*/
eProsima_user_DllExport ShapeType& operator =(
ShapeType&& x) noexcept;
/*!
* @brief Comparison operator.
* @param x ShapeType object to compare.
*/
eProsima_user_DllExport bool operator ==(
const ShapeType& x) const;
/*!
* @brief Comparison operator.
* @param x ShapeType object to compare.
*/
eProsima_user_DllExport bool operator !=(
const ShapeType& x) const;
/*!
* @brief This function copies the value in member color
* @param _color New value to be copied in member color
*/
eProsima_user_DllExport void color(
const std::string& _color);
/*!
* @brief This function moves the value in member color
* @param _color New value to be moved in member color
*/
eProsima_user_DllExport void color(
std::string&& _color);
/*!
* @brief This function returns a constant reference to member color
* @return Constant reference to member color
*/
eProsima_user_DllExport const std::string& color() const;
/*!
* @brief This function returns a reference to member color
* @return Reference to member color
*/
eProsima_user_DllExport std::string& color();
/*!
* @brief This function sets a value in member x
* @param _x New value for member x
*/
eProsima_user_DllExport void x(
int32_t _x);
/*!
* @brief This function returns the value of member x
* @return Value of member x
*/
eProsima_user_DllExport int32_t x() const;
/*!
* @brief This function returns a reference to member x
* @return Reference to member x
*/
eProsima_user_DllExport int32_t& x();
/*!
* @brief This function sets a value in member y
* @param _y New value for member y
*/
eProsima_user_DllExport void y(
int32_t _y);
/*!
* @brief This function returns the value of member y
* @return Value of member y
*/
eProsima_user_DllExport int32_t y() const;
/*!
* @brief This function returns a reference to member y
* @return Reference to member y
*/
eProsima_user_DllExport int32_t& y();
/*!
* @brief This function sets a value in member shape_size
* @param _shape_size New value for member shape_size
*/
eProsima_user_DllExport void shape_size(
int32_t _shape_size);
/*!
* @brief This function returns the value of member shape_size
* @return Value of member shape_size
*/
eProsima_user_DllExport int32_t shape_size() const;
/*!
* @brief This function returns a reference to member shape_size
* @return Reference to member shape_size
*/
eProsima_user_DllExport int32_t& shape_size();
private:
std::string m_color;
int32_t m_x{0};
int32_t m_y{0};
int32_t m_shape_size{0};
};
#endif // _FAST_DDS_GENERATED_SHAPE_H_