Pavel Paulau created THRIFT-3297:
------------------------------------
Summary: c_glib: a abstract base class is not generated
Key: THRIFT-3297
URL: https://issues.apache.org/jira/browse/THRIFT-3297
Project: Thrift
Issue Type: Bug
Components: C glib - Compiler, C glib - Library
Affects Versions: 0.9.1
Reporter: Pavel Paulau
The tutorial says:
{quote}
For each service the Thrift compiler generates an abstract base
class from which handler implementations should inherit. In our
case TutorialCalculatorHandler inherits from CalculatorHandler,
defined in gen-c_glib/calculator.h.
{quote}
However, when I run
{code}
thrift -r --gen c_glib tutorial.thrift
{code}
I get:
{code}
/**
* Autogenerated by Thrift Compiler (0.9.1)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
*/
#ifndef CALCULATOR_H
#define CALCULATOR_H
#include "tutorial_types.h"
#include "shared_service.h"
/* Calculator service interface */
typedef struct _CalculatorIf CalculatorIf; /* dummy object */
struct _CalculatorIfInterface
{
GTypeInterface parent;
gboolean (*ping) (CalculatorIf *iface, GError **error);
gboolean (*add) (CalculatorIf *iface, gint32* _return, const gint32 num1,
const gint32 num2, GError **error);
gboolean (*calculate) (CalculatorIf *iface, gint32* _return, const gint32
logid, const Work * w, InvalidOperation ** ouch, GError **error);
gboolean (*zip) (CalculatorIf *iface, GError **error);
};
typedef struct _CalculatorIfInterface CalculatorIfInterface;
GType calculator_if_get_type (void);
#define TYPE_CALCULATOR_IF (calculator_if_get_type())
#define CALCULATOR_IF(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
TYPE_CALCULATOR_IF, CalculatorIf))
#define IS_CALCULATOR_IF(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),
TYPE_CALCULATOR_IF))
#define CALCULATOR_IF_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE
((inst), TYPE_CALCULATOR_IF, CalculatorIfInterface))
gboolean calculator_if_ping (CalculatorIf *iface, GError **error);
gboolean calculator_if_add (CalculatorIf *iface, gint32* _return, const gint32
num1, const gint32 num2, GError **error);
gboolean calculator_if_calculate (CalculatorIf *iface, gint32* _return, const
gint32 logid, const Work * w, InvalidOperation ** ouch, GError **error);
gboolean calculator_if_zip (CalculatorIf *iface, GError **error);
/* Calculator service client */
struct _CalculatorClient
{
GObject parent;
ThriftProtocol *input_protocol;
ThriftProtocol *output_protocol;
};
typedef struct _CalculatorClient CalculatorClient;
struct _CalculatorClientClass
{
GObjectClass parent;
};
typedef struct _CalculatorClientClass CalculatorClientClass;
GType calculator_client_get_type (void);
#define TYPE_CALCULATOR_CLIENT (calculator_client_get_type())
#define CALCULATOR_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
TYPE_CALCULATOR_CLIENT, CalculatorClient))
#define CALCULATOR_CLIENT_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c),
TYPE_CALCULATOR_CLIENT, CalculatorClientClass))
#define CALCULATOR_IS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),
TYPE_CALCULATOR_CLIENT))
#define CALCULATOR_IS_CLIENT_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c),
TYPE_CALCULATOR_CLIENT))
#define CALCULATOR_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),
TYPE_CALCULATOR_CLIENT, CalculatorClientClass))
gboolean calculator_client_ping (CalculatorIf * iface, GError ** error);
gboolean calculator_client_send_ping (CalculatorIf * iface, GError ** error);
gboolean calculator_client_recv_ping (CalculatorIf * iface, GError ** error);
gboolean calculator_client_add (CalculatorIf * iface, gint32* _return, const
gint32 num1, const gint32 num2, GError ** error);
gboolean calculator_client_send_add (CalculatorIf * iface, const gint32 num1,
const gint32 num2, GError ** error);
gboolean calculator_client_recv_add (CalculatorIf * iface, gint32* _return,
GError ** error);
gboolean calculator_client_calculate (CalculatorIf * iface, gint32* _return,
const gint32 logid, const Work * w, InvalidOperation ** ouch, GError ** error);
gboolean calculator_client_send_calculate (CalculatorIf * iface, const gint32
logid, const Work * w, GError ** error);
gboolean calculator_client_recv_calculate (CalculatorIf * iface, gint32*
_return, InvalidOperation ** ouch, GError ** error);
gboolean calculator_client_zip (CalculatorIf * iface, GError ** error);
gboolean calculator_client_send_zip (CalculatorIf * iface, GError ** error);
void calculator_client_set_property (GObject *object, guint property_id, const
GValue *value, GParamSpec *pspec);
void calculator_client_get_property (GObject *object, guint property_id, GValue
*value, GParamSpec *pspec);
#endif /* CALCULATOR_H */
{code}
There is no definition in other files either:
{code}
$ grep -iR handler gen-c_glib
$
{code}
What am I missing?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)