/****************************************************************

  Generated by Eclipse Cyclone DDS IDL to C Translator
  File name: dds_props.h
  Source: dds_props.idl
  Cyclone DDS: V0.7.0

*****************************************************************/

#include "dds/ddsc/dds_public_impl.h"

#ifndef _DDSL_DDS_PROPS_H_
#define _DDSL_DDS_PROPS_H_


#ifdef __cplusplus
extern "C" {
#endif

#define FG_DDS_PROP_VERSION 0
#define FG_DDS_PROP_REQUEST -1
#define FG_DDS_MODE_READ (0)
#define FG_DDS_MODE_WRITE (1)
typedef enum FG_propType
{
  FG_DDS_NONE,
  FG_DDS_ALIAS,
  FG_DDS_BOOL,
  FG_DDS_INT,
  FG_DDS_LONG,
  FG_DDS_FLOAT,
  FG_DDS_DOUBLE,
  FG_DDS_STRING,
  FG_DDS_UNSPECIFIED
} FG_propType;

#define FG_propType__alloc() \
((FG_propType*) dds_alloc (sizeof (FG_propType)));


typedef struct FG_propValue
{
  FG_propType _d;
  union
  {
    char Bool;
    int32_t Int32;
    int64_t Int64;
    float Float32;
    double Float64;
    char * String;
  } _u;
} FG_propValue;

#define FG_propValue__alloc() \
((FG_propValue*) dds_alloc (sizeof (FG_propValue)));


typedef struct FG_DDS_prop
{
  int32_t id;
  uint8_t version;
  char mode;
  FG_propValue val;
  uint8_t guid[16];
} FG_DDS_prop;

extern const dds_topic_descriptor_t FG_DDS_prop_desc;

#define FG_DDS_prop__alloc() \
((FG_DDS_prop*) dds_alloc (sizeof (FG_DDS_prop)));

#define FG_DDS_prop_free(d,o) \
dds_sample_free ((d), &FG_DDS_prop_desc, (o))

#ifdef __cplusplus
}
#endif
#endif /* _DDSL_DDS_PROPS_H_ */
