Commit f43dd755 authored by Sven Gestegård Robertz's avatar Sven Gestegård Robertz
Browse files

added and hacked

parent 78fc1083
#include "labcomm.h"
#include "labcomm_private.h"
#include "jg.h"
static unsigned char signature_bytes_jg_foo[] = {
// struct { 8 fields
17,
8,
// double 'b'
1,
98,
38,
// int 'c'
1,
99,
35,
// int 'd'
1,
100,
35,
// string 'e'
1,
101,
39,
// boolean 'f'
1,
102,
32,
// short 'g'
1,
103,
34,
// long 'h'
1,
104,
36,
// float 'i'
1,
105,
37,
// }
};
struct labcomm_signature labcomm_signature_jg_foo = {
LABCOMM_SAMPLE, "foo",
(int (*)(struct labcomm_signature *, void *))labcomm_sizeof_jg_foo,
sizeof(signature_bytes_jg_foo),
signature_bytes_jg_foo,
0
};
static void decode_jg_foo(
struct labcomm_reader *r,
void (*handle)(
jg_foo *v,
void *context
),
void *context
)
{
jg_foo v;
v.b = labcomm_read_double(r);
v.c = labcomm_read_int(r);
v.d = labcomm_read_int(r);
v.e = labcomm_read_string(r);
v.f = labcomm_read_boolean(r);
v.g = labcomm_read_short(r);
v.h = labcomm_read_long(r);
v.i = labcomm_read_float(r);
handle(&v, context);
{
labcomm_memory_free(r->memory, 1, v.e);
}
}
int labcomm_decoder_register_jg_foo(
struct labcomm_decoder *d,
void (*handler)(
jg_foo *v,
void *context
),
void *context
)
{
return labcomm_internal_decoder_register(
d,
&labcomm_signature_jg_foo,
(labcomm_decoder_function)decode_jg_foo,
(labcomm_handler_function)handler,
context
);
}
int labcomm_decoder_ioctl_jg_foo(
struct labcomm_decoder *d,
int ioctl_action,
...
)
{
int result;
va_list va;
va_start(va, ioctl_action);
result = labcomm_internal_decoder_ioctl(
d, &labcomm_signature_jg_foo,
ioctl_action, va);
va_end(va);
return result;
}
static int encode_jg_foo(
struct labcomm_writer *w,
jg_foo *v
)
{
int result = 0;
result = labcomm_write_double(w, (*v).b);
if (result != 0) { return result; }
result = labcomm_write_int(w, (*v).c);
if (result != 0) { return result; }
result = labcomm_write_int(w, (*v).d);
if (result != 0) { return result; }
result = labcomm_write_string(w, (*v).e);
if (result != 0) { return result; }
result = labcomm_write_boolean(w, (*v).f);
if (result != 0) { return result; }
result = labcomm_write_short(w, (*v).g);
if (result != 0) { return result; }
result = labcomm_write_long(w, (*v).h);
if (result != 0) { return result; }
result = labcomm_write_float(w, (*v).i);
if (result != 0) { return result; }
return result;
}
int labcomm_encode_jg_foo(
struct labcomm_encoder *e,
jg_foo *v
)
{
return labcomm_internal_encode(e, &labcomm_signature_jg_foo, (labcomm_encoder_function)encode_jg_foo, v);
}
int labcomm_encoder_register_jg_foo(
struct labcomm_encoder *e
)
{
return labcomm_internal_encoder_register(
e,
&labcomm_signature_jg_foo,
(labcomm_encoder_function)encode_jg_foo
);
}
int labcomm_encoder_ioctl_jg_foo(
struct labcomm_encoder *e,
int ioctl_action,
...
)
{
int result;
va_list va;
va_start(va, ioctl_action);
result = labcomm_internal_encoder_ioctl(
e, &labcomm_signature_jg_foo,
ioctl_action, va);
va_end(va);
return result;
}
int labcomm_sizeof_jg_foo(jg_foo *v)
{
int result = labcomm_size_packed32(labcomm_signature_jg_foo.index);
result += 0 + strlen((*v).e);
result += 31;
return result;
}
LABCOMM_CONSTRUCTOR void init_jg__signatures(void)
{
static int initialized = 0;
if (initialized == 0) {
initialized = 1;
labcomm_set_local_index(&labcomm_signature_jg_foo);
}
}
/* LabComm declarations:
sample struct {
double b;
int c;
int d;
string e;
boolean f;
short g;
long h;
float i;
} foo;
*/
#ifndef __LABCOMM_jg_H__
#define __LABCOMM_jg_H__
#include <stdint.h>
#include "labcomm.h"
#ifndef PREDEFINED_jg_foo
typedef struct {
double b;
int32_t c;
int32_t d;
char* e;
uint8_t f;
int16_t g;
int64_t h;
float i;
} jg_foo;
#endif
int labcomm_decoder_register_jg_foo(
struct labcomm_decoder *d,
void (*handler)(
jg_foo *v,
void *context
),
void *context
);
int labcomm_decoder_ioctl_jg_foo(
struct labcomm_decoder *d,
int ioctl_action,
...
);
int labcomm_encoder_register_jg_foo(
struct labcomm_encoder *e);
int labcomm_encode_jg_foo(
struct labcomm_encoder *e,
jg_foo *v
);
int labcomm_encoder_ioctl_jg_foo(
struct labcomm_encoder *e,
int ioctl_action,
...
);
extern int labcomm_sizeof_jg_foo(jg_foo *v);
void init_jg__signatures(void);
#define LABCOMM_FORALL_SAMPLES_jg(func, sep) \
func(foo, jg_foo)
#endif
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment