/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: lib/io/villas.proto */

#ifndef PROTOBUF_C_lib_2fio_2fvillas_2eproto__INCLUDED
#define PROTOBUF_C_lib_2fio_2fvillas_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1000000
# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1002001 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif


typedef struct _Villas__Node__Message Villas__Node__Message;
typedef struct _Villas__Node__Sample Villas__Node__Sample;
typedef struct _Villas__Node__Timestamp Villas__Node__Timestamp;
typedef struct _Villas__Node__Value Villas__Node__Value;


/* --- enums --- */

typedef enum _Villas__Node__Sample__Type {
  /*
   * Message contains float / integer data values
   */
  VILLAS__NODE__SAMPLE__TYPE__DATA = 1,
  /*
   * Message marks the beginning of a new simulation case
   */
  VILLAS__NODE__SAMPLE__TYPE__START = 2,
  /*
   * Message marks the end of a simulation case
   */
  VILLAS__NODE__SAMPLE__TYPE__STOP = 3
    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(VILLAS__NODE__SAMPLE__TYPE)
} Villas__Node__Sample__Type;

/* --- messages --- */

struct  _Villas__Node__Message
{
  ProtobufCMessage base;
  size_t n_samples;
  Villas__Node__Sample **samples;
};
#define VILLAS__NODE__MESSAGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&villas__node__message__descriptor) \
    , 0,NULL }


struct  _Villas__Node__Sample
{
  ProtobufCMessage base;
  Villas__Node__Sample__Type type;
  /*
   * The sequence number is incremented by one for consecutive messages.
   */
  protobuf_c_boolean has_sequence;
  uint32_t sequence;
  /*
   * An id which identifies the source of this sample.
   */
  protobuf_c_boolean has_id;
  uint32_t id;
  Villas__Node__Timestamp *timestamp;
  size_t n_values;
  Villas__Node__Value **values;
};
#define VILLAS__NODE__SAMPLE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&villas__node__sample__descriptor) \
    , VILLAS__NODE__SAMPLE__TYPE__DATA, 0,0, 0,0, NULL, 0,NULL }


struct  _Villas__Node__Timestamp
{
  ProtobufCMessage base;
  /*
   * Seconds since 1970-01-01 00:00:00
   */
  uint32_t sec;
  /*
   * Nanoseconds of the current second.
   */
  uint32_t nsec;
};
#define VILLAS__NODE__TIMESTAMP__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&villas__node__timestamp__descriptor) \
    , 0, 0 }


typedef enum {
  VILLAS__NODE__VALUE__VALUE__NOT_SET = 0,
  VILLAS__NODE__VALUE__VALUE_F = 1,
  VILLAS__NODE__VALUE__VALUE_I = 2,
} Villas__Node__Value__ValueCase;

struct  _Villas__Node__Value
{
  ProtobufCMessage base;
  Villas__Node__Value__ValueCase value_case;
  union {
    /*
     * Floating point values.
     */
    float f;
    /*
     * Integer values.
     */
    int32_t i;
  };
};
#define VILLAS__NODE__VALUE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&villas__node__value__descriptor) \
    , VILLAS__NODE__VALUE__VALUE__NOT_SET, {0} }


/* Villas__Node__Message methods */
void   villas__node__message__init
                     (Villas__Node__Message         *message);
size_t villas__node__message__get_packed_size
                     (const Villas__Node__Message   *message);
size_t villas__node__message__pack
                     (const Villas__Node__Message   *message,
                      uint8_t             *out);
size_t villas__node__message__pack_to_buffer
                     (const Villas__Node__Message   *message,
                      ProtobufCBuffer     *buffer);
Villas__Node__Message *
       villas__node__message__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   villas__node__message__free_unpacked
                     (Villas__Node__Message *message,
                      ProtobufCAllocator *allocator);
/* Villas__Node__Sample methods */
void   villas__node__sample__init
                     (Villas__Node__Sample         *message);
size_t villas__node__sample__get_packed_size
                     (const Villas__Node__Sample   *message);
size_t villas__node__sample__pack
                     (const Villas__Node__Sample   *message,
                      uint8_t             *out);
size_t villas__node__sample__pack_to_buffer
                     (const Villas__Node__Sample   *message,
                      ProtobufCBuffer     *buffer);
Villas__Node__Sample *
       villas__node__sample__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   villas__node__sample__free_unpacked
                     (Villas__Node__Sample *message,
                      ProtobufCAllocator *allocator);
/* Villas__Node__Timestamp methods */
void   villas__node__timestamp__init
                     (Villas__Node__Timestamp         *message);
size_t villas__node__timestamp__get_packed_size
                     (const Villas__Node__Timestamp   *message);
size_t villas__node__timestamp__pack
                     (const Villas__Node__Timestamp   *message,
                      uint8_t             *out);
size_t villas__node__timestamp__pack_to_buffer
                     (const Villas__Node__Timestamp   *message,
                      ProtobufCBuffer     *buffer);
Villas__Node__Timestamp *
       villas__node__timestamp__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   villas__node__timestamp__free_unpacked
                     (Villas__Node__Timestamp *message,
                      ProtobufCAllocator *allocator);
/* Villas__Node__Value methods */
void   villas__node__value__init
                     (Villas__Node__Value         *message);
size_t villas__node__value__get_packed_size
                     (const Villas__Node__Value   *message);
size_t villas__node__value__pack
                     (const Villas__Node__Value   *message,
                      uint8_t             *out);
size_t villas__node__value__pack_to_buffer
                     (const Villas__Node__Value   *message,
                      ProtobufCBuffer     *buffer);
Villas__Node__Value *
       villas__node__value__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   villas__node__value__free_unpacked
                     (Villas__Node__Value *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Villas__Node__Message_Closure)
                 (const Villas__Node__Message *message,
                  void *closure_data);
typedef void (*Villas__Node__Sample_Closure)
                 (const Villas__Node__Sample *message,
                  void *closure_data);
typedef void (*Villas__Node__Timestamp_Closure)
                 (const Villas__Node__Timestamp *message,
                  void *closure_data);
typedef void (*Villas__Node__Value_Closure)
                 (const Villas__Node__Value *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor villas__node__message__descriptor;
extern const ProtobufCMessageDescriptor villas__node__sample__descriptor;
extern const ProtobufCEnumDescriptor    villas__node__sample__type__descriptor;
extern const ProtobufCMessageDescriptor villas__node__timestamp__descriptor;
extern const ProtobufCMessageDescriptor villas__node__value__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_lib_2fio_2fvillas_2eproto__INCLUDED */