pidgin/pidgin
Clone
Summary
Browse
Changes
Graph
Bump the version for release
release-2.x.y
v2.10.12
2015-12-31, Gary Kramlich
2ac1dcb9eb2e
Bump the version for release
/* $Id$ */
/*
* (C) Copyright 2012 Tomek Wasilczyk <www.wasilczyk.pl>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License Version
* 2.1 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
* USA.
*/
#ifndef LIBGADU_PROTOBUF_H
#define LIBGADU_PROTOBUF_H
#include
<stdlib.h>
#include
<errno.h>
#include
<string.h>
#include
"config.h"
#ifdef GG_CONFIG_HAVE_PROTOBUF_C
#include
<protobuf-c/protobuf-c.h>
#else
#include
"protobuf-c.h"
#endif
#include
"internal.h"
#include
"fileio.h"
typedef
size_t
(
*
gg_protobuf_size_cb_t
)(
const
void
*
message
);
typedef
size_t
(
*
gg_protobuf_pack_cb_t
)(
const
void
*
message
,
uint8_t
*
out
);
typedef
struct
_gg_protobuf_uin_buff
gg_protobuf_uin_buff_t
;
/* Ostatni warunek (msg != NULL) jest tylko po to, żeby uciszyć analizę
* statyczną (zawiera się w pierwszym). */
#define GG_PROTOBUF_VALID(gs, name, msg) \
(gg_protobuf_valid_chknull(gs, name, msg == NULL) && \
gg_protobuf_valid_chkunknown(gs, name, &msg->base) && \
msg != NULL)
#define GG_PROTOBUF_SEND(gs, ge, packet_type, msg_type, msg) \
gg_protobuf_send_ex(gs, ge, packet_type, &msg, \
(gg_protobuf_size_cb_t) msg_type ## __get_packed_size, \
(gg_protobuf_pack_cb_t) msg_type ## __pack)
void
gg_protobuf_expected
(
struct
gg_session
*
gs
,
const
char
*
field_name
,
uint32_t
value
,
uint32_t
expected
);
int
gg_protobuf_valid_chknull
(
struct
gg_session
*
gs
,
const
char
*
msg_name
,
int
isNull
);
int
gg_protobuf_valid_chkunknown
(
struct
gg_session
*
gs
,
const
char
*
msg_name
,
ProtobufCMessage
*
base
);
int
gg_protobuf_send_ex
(
struct
gg_session
*
gs
,
struct
gg_event
*
ge
,
int
type
,
void
*
msg
,
gg_protobuf_size_cb_t
size_cb
,
gg_protobuf_pack_cb_t
pack_cb
);
void
gg_protobuf_set_uin
(
ProtobufCBinaryData
*
dst
,
uin_t
uin
,
gg_protobuf_uin_buff_t
*
buff
);
uin_t
gg_protobuf_get_uin
(
ProtobufCBinaryData
uin_data
);
#endif
/* LIBGADU_PROTOBUF_H */