mirror of https://github.com/yandex/odyssey.git
60 lines
1.0 KiB
C
60 lines
1.0 KiB
C
#ifndef SHAPITO_PARAMETER_H
|
|
#define SHAPITO_PARAMETER_H
|
|
|
|
/*
|
|
* SHAPITO.
|
|
*
|
|
* Protocol-level PostgreSQL client library.
|
|
*/
|
|
|
|
typedef struct so_parameter so_parameter_t;
|
|
typedef struct so_parameters so_parameters_t;
|
|
|
|
struct so_parameter
|
|
{
|
|
uint32_t name_len;
|
|
uint32_t value_len;
|
|
char data[];
|
|
};
|
|
|
|
struct so_parameters
|
|
{
|
|
so_stream_t buf;
|
|
};
|
|
|
|
static inline char*
|
|
so_parameter_name(so_parameter_t *param)
|
|
{
|
|
return param->data;
|
|
}
|
|
|
|
static inline char*
|
|
so_parameter_value(so_parameter_t *param)
|
|
{
|
|
return param->data + param->name_len;
|
|
}
|
|
|
|
static inline so_parameter_t*
|
|
so_parameter_next(so_parameter_t *param)
|
|
{
|
|
return (so_parameter_t*)(param->data + param->name_len +
|
|
param->value_len);
|
|
}
|
|
|
|
static inline void
|
|
so_parameters_init(so_parameters_t *params)
|
|
{
|
|
so_stream_init(¶ms->buf);
|
|
}
|
|
|
|
static inline void
|
|
so_parameters_free(so_parameters_t *params)
|
|
{
|
|
so_stream_free(¶ms->buf);
|
|
}
|
|
|
|
int so_parameters_add(so_parameters_t*, char*, uint32_t,
|
|
char*, uint32_t);
|
|
|
|
#endif /* SHAPITO_PARAMETER_H */
|