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

#ifndef PROTOBUF_C_vector_2eproto__INCLUDED
#define PROTOBUF_C_vector_2eproto__INCLUDED

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

PROTOBUF_C__BEGIN_DECLS

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


typedef struct Messages__File Messages__File;
typedef struct Messages__DirentNode Messages__DirentNode;
typedef struct Messages__Revision Messages__Revision;
typedef struct Messages__Extrema Messages__Extrema;
typedef struct Messages__Vector32 Messages__Vector32;
typedef struct Messages__Vector64 Messages__Vector64;
typedef struct Messages__SparseMatrix Messages__SparseMatrix;
typedef struct Messages__Rule Messages__Rule;
typedef struct Messages__Record64 Messages__Record64;
typedef struct Messages__UIndices Messages__UIndices;
typedef struct Messages__Elements Messages__Elements;


/* --- enums --- */


/* --- messages --- */

struct  Messages__File
{
  ProtobufCMessage base;
  char *name;
  ProtobufCBinaryData payload;
  protobuf_c_boolean is_local;
  protobuf_c_boolean is_exported;
  /*
   *reserved
   */
  uint64_t time_created;
  uint64_t time_modified;
};
#define MESSAGES__FILE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__file__descriptor) \
    , (char *)protobuf_c_empty_string, {0,NULL}, 0, 0, 0, 0 }


struct  Messages__DirentNode
{
  ProtobufCMessage base;
  char *dirname;
  size_t n_files;
  char **files;
  size_t n_subdirs;
  Messages__DirentNode **subdirs;
};
#define MESSAGES__DIRENT_NODE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__dirent_node__descriptor) \
    , (char *)protobuf_c_empty_string, 0,NULL, 0,NULL }


struct  Messages__Revision
{
  ProtobufCMessage base;
  uint64_t major_rev;
  uint64_t minor_rev;
};
#define MESSAGES__REVISION__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__revision__descriptor) \
    , 0, 0 }


struct  Messages__Extrema
{
  ProtobufCMessage base;
  uint32_t dims;
  size_t n_min;
  double *min;
  size_t n_max;
  double *max;
  protobuf_c_boolean is_set;
};
#define MESSAGES__EXTREMA__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__extrema__descriptor) \
    , 0, 0,NULL, 0,NULL, 0 }


struct  Messages__Vector32
{
  ProtobufCMessage base;
  char *name;
  uint32_t components;
  protobuf_c_boolean interleaved;
  Messages__Revision *revision;
  /*
   * kg m s^2 and such string literals
   */
  char *units;
  char *comment;
  /*
   *reserved
   */
  /*
   * use to append (insert location to prior entries)
   */
  uint64_t offset;
  size_t n_values;
  float *values;
  /*
   *reserved
   */
  size_t n_size_hint;
  uint32_t *size_hint;
};
#define MESSAGES__VECTOR32__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__vector32__descriptor) \
    , (char *)protobuf_c_empty_string, 0, 0, NULL, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0,NULL, 0,NULL }


struct  Messages__Vector64
{
  ProtobufCMessage base;
  char *name;
  uint32_t components;
  protobuf_c_boolean interleaved;
  Messages__Revision *revision;
  /*
   * kg m s^2 and such string literals
   */
  char *units;
  char *comment;
  /*
   *reserved
   */
  /*
   * use to append (insert location to prior entries)
   */
  uint64_t offset;
  size_t n_values;
  double *values;
  /*
   *reserved
   */
  size_t n_size_hint;
  uint32_t *size_hint;
};
#define MESSAGES__VECTOR64__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__vector64__descriptor) \
    , (char *)protobuf_c_empty_string, 0, 0, NULL, (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, 0, 0,NULL, 0,NULL }


struct  Messages__SparseMatrix
{
  ProtobufCMessage base;
  char *name;
  size_t n_size_hint;
  uint32_t *size_hint;
  /*
   *1:1 mapping between indices and values
   */
  size_t n_indices;
  uint32_t *indices;
  size_t n_values;
  double *values;
  Messages__Extrema *bounds;
};
#define MESSAGES__SPARSE_MATRIX__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__sparse_matrix__descriptor) \
    , (char *)protobuf_c_empty_string, 0,NULL, 0,NULL, 0,NULL, NULL }


struct  Messages__Rule
{
  ProtobufCMessage base;
  /*
   * serialized property-key <property|modifier|...>
   */
  char *pk;
  /*
   * either: comparator enum (requirement), or relative priority number in queue
   */
  uint32_t op;
  double value;
  /*
   * names of algorithms to be associated
   */
  size_t n_algorithms;
  char **algorithms;
  size_t n_failed_nodes;
  uint32_t *failed_nodes;
  size_t n_failed_values;
  double *failed_values;
};
#define MESSAGES__RULE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__rule__descriptor) \
    , (char *)protobuf_c_empty_string, 0, 0, 0,NULL, 0,NULL, 0,NULL }


struct  Messages__Record64
{
  ProtobufCMessage base;
  char *name;
  char *owner;
  Messages__Revision *revision;
  /*
   *reserved
   */
  /*
   * 0-7: mm, cm, m, km, in, ft, yd, mi (defined in common/space.h)
   */
  uint32_t length_units;
  size_t n_requirements;
  Messages__Rule **requirements;
  size_t n_data;
  Messages__Vector64 **data;
  size_t n_matrix;
  Messages__SparseMatrix **matrix;
};
#define MESSAGES__RECORD64__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__record64__descriptor) \
    , (char *)protobuf_c_empty_string, (char *)protobuf_c_empty_string, NULL, 0, 0,NULL, 0,NULL, 0,NULL }


struct  Messages__UIndices
{
  ProtobufCMessage base;
  char *name;
  uint32_t components;
  protobuf_c_boolean interleaved;
  Messages__Revision *revision;
  /*
   *reserved
   */
  /*
   * use to append (insert location to prior entries)
   */
  uint64_t offset;
  size_t n_values;
  uint32_t *values;
};
#define MESSAGES__UINDICES__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__uindices__descriptor) \
    , (char *)protobuf_c_empty_string, 0, 0, NULL, 0, 0,NULL }


struct  Messages__Elements
{
  ProtobufCMessage base;
  /*
   * each element has a unique index assigned
   */
  size_t n_element_indices;
  uint32_t *element_indices;
  /*
   * type convention (see xcompute-server documentation, enums for tri3, tet4, quad4, ... , tet 10, ...)
   */
  size_t n_element_types;
  uint32_t *element_types;
  /*
   * region identifier (unique within a type of region, e.g. surface 0, surface 1, ..., volume 0, ... )
   */
  size_t n_element_ids;
  int32_t *element_ids;
  /*
   * node indices (unique within this region, e.g. nodes 0, 1, 3, 5, 7 , 11, 13, 17 ... 41 ...)
   */
  size_t n_node_indices;
  uint32_t *node_indices;
  /*
   *reserved
   */
  /*
   * element barycenters, often computed as the average of node positions -- only required for nodes (optional for other element types)
   */
  size_t n_element_centers;
  double *element_centers;
  /*
   * optional. element measure could be lengths (edges), areas (faces), or volumes (cells) values (scalar or nDim-component vector)
   */
  size_t n_element_measures;
  double *element_measures;
};
#define MESSAGES__ELEMENTS__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&messages__elements__descriptor) \
    , 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL }


/* Messages__File methods */
void   messages__file__init
                     (Messages__File         *message);
size_t messages__file__get_packed_size
                     (const Messages__File   *message);
size_t messages__file__pack
                     (const Messages__File   *message,
                      uint8_t             *out);
size_t messages__file__pack_to_buffer
                     (const Messages__File   *message,
                      ProtobufCBuffer     *buffer);
Messages__File *
       messages__file__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__file__free_unpacked
                     (Messages__File *message,
                      ProtobufCAllocator *allocator);
/* Messages__DirentNode methods */
void   messages__dirent_node__init
                     (Messages__DirentNode         *message);
size_t messages__dirent_node__get_packed_size
                     (const Messages__DirentNode   *message);
size_t messages__dirent_node__pack
                     (const Messages__DirentNode   *message,
                      uint8_t             *out);
size_t messages__dirent_node__pack_to_buffer
                     (const Messages__DirentNode   *message,
                      ProtobufCBuffer     *buffer);
Messages__DirentNode *
       messages__dirent_node__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__dirent_node__free_unpacked
                     (Messages__DirentNode *message,
                      ProtobufCAllocator *allocator);
/* Messages__Revision methods */
void   messages__revision__init
                     (Messages__Revision         *message);
size_t messages__revision__get_packed_size
                     (const Messages__Revision   *message);
size_t messages__revision__pack
                     (const Messages__Revision   *message,
                      uint8_t             *out);
size_t messages__revision__pack_to_buffer
                     (const Messages__Revision   *message,
                      ProtobufCBuffer     *buffer);
Messages__Revision *
       messages__revision__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__revision__free_unpacked
                     (Messages__Revision *message,
                      ProtobufCAllocator *allocator);
/* Messages__Extrema methods */
void   messages__extrema__init
                     (Messages__Extrema         *message);
size_t messages__extrema__get_packed_size
                     (const Messages__Extrema   *message);
size_t messages__extrema__pack
                     (const Messages__Extrema   *message,
                      uint8_t             *out);
size_t messages__extrema__pack_to_buffer
                     (const Messages__Extrema   *message,
                      ProtobufCBuffer     *buffer);
Messages__Extrema *
       messages__extrema__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__extrema__free_unpacked
                     (Messages__Extrema *message,
                      ProtobufCAllocator *allocator);
/* Messages__Vector32 methods */
void   messages__vector32__init
                     (Messages__Vector32         *message);
size_t messages__vector32__get_packed_size
                     (const Messages__Vector32   *message);
size_t messages__vector32__pack
                     (const Messages__Vector32   *message,
                      uint8_t             *out);
size_t messages__vector32__pack_to_buffer
                     (const Messages__Vector32   *message,
                      ProtobufCBuffer     *buffer);
Messages__Vector32 *
       messages__vector32__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__vector32__free_unpacked
                     (Messages__Vector32 *message,
                      ProtobufCAllocator *allocator);
/* Messages__Vector64 methods */
void   messages__vector64__init
                     (Messages__Vector64         *message);
size_t messages__vector64__get_packed_size
                     (const Messages__Vector64   *message);
size_t messages__vector64__pack
                     (const Messages__Vector64   *message,
                      uint8_t             *out);
size_t messages__vector64__pack_to_buffer
                     (const Messages__Vector64   *message,
                      ProtobufCBuffer     *buffer);
Messages__Vector64 *
       messages__vector64__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__vector64__free_unpacked
                     (Messages__Vector64 *message,
                      ProtobufCAllocator *allocator);
/* Messages__SparseMatrix methods */
void   messages__sparse_matrix__init
                     (Messages__SparseMatrix         *message);
size_t messages__sparse_matrix__get_packed_size
                     (const Messages__SparseMatrix   *message);
size_t messages__sparse_matrix__pack
                     (const Messages__SparseMatrix   *message,
                      uint8_t             *out);
size_t messages__sparse_matrix__pack_to_buffer
                     (const Messages__SparseMatrix   *message,
                      ProtobufCBuffer     *buffer);
Messages__SparseMatrix *
       messages__sparse_matrix__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__sparse_matrix__free_unpacked
                     (Messages__SparseMatrix *message,
                      ProtobufCAllocator *allocator);
/* Messages__Rule methods */
void   messages__rule__init
                     (Messages__Rule         *message);
size_t messages__rule__get_packed_size
                     (const Messages__Rule   *message);
size_t messages__rule__pack
                     (const Messages__Rule   *message,
                      uint8_t             *out);
size_t messages__rule__pack_to_buffer
                     (const Messages__Rule   *message,
                      ProtobufCBuffer     *buffer);
Messages__Rule *
       messages__rule__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__rule__free_unpacked
                     (Messages__Rule *message,
                      ProtobufCAllocator *allocator);
/* Messages__Record64 methods */
void   messages__record64__init
                     (Messages__Record64         *message);
size_t messages__record64__get_packed_size
                     (const Messages__Record64   *message);
size_t messages__record64__pack
                     (const Messages__Record64   *message,
                      uint8_t             *out);
size_t messages__record64__pack_to_buffer
                     (const Messages__Record64   *message,
                      ProtobufCBuffer     *buffer);
Messages__Record64 *
       messages__record64__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__record64__free_unpacked
                     (Messages__Record64 *message,
                      ProtobufCAllocator *allocator);
/* Messages__UIndices methods */
void   messages__uindices__init
                     (Messages__UIndices         *message);
size_t messages__uindices__get_packed_size
                     (const Messages__UIndices   *message);
size_t messages__uindices__pack
                     (const Messages__UIndices   *message,
                      uint8_t             *out);
size_t messages__uindices__pack_to_buffer
                     (const Messages__UIndices   *message,
                      ProtobufCBuffer     *buffer);
Messages__UIndices *
       messages__uindices__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__uindices__free_unpacked
                     (Messages__UIndices *message,
                      ProtobufCAllocator *allocator);
/* Messages__Elements methods */
void   messages__elements__init
                     (Messages__Elements         *message);
size_t messages__elements__get_packed_size
                     (const Messages__Elements   *message);
size_t messages__elements__pack
                     (const Messages__Elements   *message,
                      uint8_t             *out);
size_t messages__elements__pack_to_buffer
                     (const Messages__Elements   *message,
                      ProtobufCBuffer     *buffer);
Messages__Elements *
       messages__elements__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   messages__elements__free_unpacked
                     (Messages__Elements *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Messages__File_Closure)
                 (const Messages__File *message,
                  void *closure_data);
typedef void (*Messages__DirentNode_Closure)
                 (const Messages__DirentNode *message,
                  void *closure_data);
typedef void (*Messages__Revision_Closure)
                 (const Messages__Revision *message,
                  void *closure_data);
typedef void (*Messages__Extrema_Closure)
                 (const Messages__Extrema *message,
                  void *closure_data);
typedef void (*Messages__Vector32_Closure)
                 (const Messages__Vector32 *message,
                  void *closure_data);
typedef void (*Messages__Vector64_Closure)
                 (const Messages__Vector64 *message,
                  void *closure_data);
typedef void (*Messages__SparseMatrix_Closure)
                 (const Messages__SparseMatrix *message,
                  void *closure_data);
typedef void (*Messages__Rule_Closure)
                 (const Messages__Rule *message,
                  void *closure_data);
typedef void (*Messages__Record64_Closure)
                 (const Messages__Record64 *message,
                  void *closure_data);
typedef void (*Messages__UIndices_Closure)
                 (const Messages__UIndices *message,
                  void *closure_data);
typedef void (*Messages__Elements_Closure)
                 (const Messages__Elements *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor messages__file__descriptor;
extern const ProtobufCMessageDescriptor messages__dirent_node__descriptor;
extern const ProtobufCMessageDescriptor messages__revision__descriptor;
extern const ProtobufCMessageDescriptor messages__extrema__descriptor;
extern const ProtobufCMessageDescriptor messages__vector32__descriptor;
extern const ProtobufCMessageDescriptor messages__vector64__descriptor;
extern const ProtobufCMessageDescriptor messages__sparse_matrix__descriptor;
extern const ProtobufCMessageDescriptor messages__rule__descriptor;
extern const ProtobufCMessageDescriptor messages__record64__descriptor;
extern const ProtobufCMessageDescriptor messages__uindices__descriptor;
extern const ProtobufCMessageDescriptor messages__elements__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_vector_2eproto__INCLUDED */
