/**
 * Generated by running lcm-gen -c --c-no-pubsub channel_port_mapping.lcm
 *
 * and then modified by hand to replace
 * #include <lcm/lcm_coretypes.h>
 * with
 * #include "../lcm_coretypes.h"
 **/

#include <stdint.h>
#include <stdlib.h>
#include "../lcm_coretypes.h"

#ifndef _channel_port_map_update_t_h
#define _channel_port_map_update_t_h

#ifdef __cplusplus
extern "C" {
#endif

#include "channel_to_port_t.h"
typedef struct _channel_port_map_update_t channel_port_map_update_t;
struct _channel_port_map_update_t {
    int16_t num_ports;
    int16_t num_channels;
    channel_to_port_t *mapping;
};

channel_port_map_update_t *channel_port_map_update_t_copy(const channel_port_map_update_t *p);
void channel_port_map_update_t_destroy(channel_port_map_update_t *p);

int channel_port_map_update_t_encode(void *buf, int offset, int maxlen,
                                     const channel_port_map_update_t *p);
int channel_port_map_update_t_decode(const void *buf, int offset, int maxlen,
                                     channel_port_map_update_t *p);
int channel_port_map_update_t_decode_cleanup(channel_port_map_update_t *p);
int channel_port_map_update_t_encoded_size(const channel_port_map_update_t *p);

// LCM support functions. Users should not call these
int64_t __channel_port_map_update_t_get_hash(void);
int64_t __channel_port_map_update_t_hash_recursive(const __lcm_hash_ptr *p);
int __channel_port_map_update_t_encode_array(void *buf, int offset, int maxlen,
                                             const channel_port_map_update_t *p, int elements);
int __channel_port_map_update_t_decode_array(const void *buf, int offset, int maxlen,
                                             channel_port_map_update_t *p, int elements);
int __channel_port_map_update_t_decode_array_cleanup(channel_port_map_update_t *p, int elements);
int __channel_port_map_update_t_encoded_array_size(const channel_port_map_update_t *p,
                                                   int elements);
int __channel_port_map_update_t_clone_array(const channel_port_map_update_t *p,
                                            channel_port_map_update_t *q, int elements);

#ifdef __cplusplus
}
#endif

#endif
