You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Aurélien Revol (JIRA)" <ji...@apache.org> on 2011/09/22 13:09:26 UTC
[jira] [Issue Comment Edited] (THRIFT-976) c_glib tutorial
[ https://issues.apache.org/jira/browse/THRIFT-976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13112418#comment-13112418 ]
Aurélien Revol edited comment on THRIFT-976 at 9/22/11 11:08 AM:
-----------------------------------------------------------------
Hi all,
As I've been playing a bit with the c_glib library, I've managed to port some C++ client code to the Glib and get a half-working solution. There must be something wrong in my initialization code (directly translated from the C++ tutorial to the Glib), since I can send requests, but not receive them. (It only works if I tweak the "len" variable in the "thrift_socket_read" function in "thrift_socket.c" while running in the debugger!)
I'm willing to contribute a port of the tutorial to the c_glib, provided somebody helps me with the following initialization and cleanup code:
{code:title=c_glib_client.c|borderStyle=solid}
#include "protocol/thrift_protocol.h"
#include "protocol/thrift_binary_protocol.h"
#include "transport/thrift_buffered_transport.h"
#include "transport/thrift_transport.h"
#include "transport/thrift_socket.h"
#include "../gen-c_glib/calculator.h"
int main(int argc, char** argv) {
ThriftSocket *tsocket = THRIFT_SOCKET( g_object_new (THRIFT_TYPE_SOCKET,
"hostname", "localhost",
"port", 9090, 0) );
ThriftTransport *transport = THRIFT_TRANSPORT( g_object_new (THRIFT_TYPE_BUFFERED_TRANSPORT,
"transport", tsocket, 0) );
ThriftProtocol *protocol = THRIFT_PROTOCOL ( g_object_new (THRIFT_TYPE_BINARY_PROTOCOL,
"transport", transport, 0) );
CalculatorClient *client = CALCULATOR_CLIENT( g_object_new(TYPE_CALCULATOR_CLIENT,
"input_protocol", protocol, /* ??? */
"output_protocol", protocol,
0) );
CalculatorIf *service = CALCULATOR_IF(client);
thrift_transport_open(transport, 0);
/* Real user code here */
thrift_transport_close(m_transport, 0);
g_object_unref (client);
g_object_unref (protocol);
g_object_unref (transport);
g_object_unref (tsocket);
return 0;
}
{code}
Thanks for any help!
was (Author: arevol):
Hi all,
As I've been playing a bit with the c_glib library, I've managed to port some C++ client code to the Glib and get a half-working solution. There must be something wrong in my initialization code (directly translated from the C++ tutorial to the Glib), since I can send requests, but not receive them. (It only works if I tweak the "len" variable in the "thrift_socket_read" function in "thrift_socket.c" while running in the debugger!)
I'm willing to contribute a port of the tutorial to the c_glib, provided somebody helps me with the following initialization and cleanup code:
{code:title=c_glib_client.c|borderStyle=solid}
#include "protocol/thrift_protocol.h"
#include "protocol/thrift_binary_protocol.h"
#include "transport/thrift_buffered_transport.h"
#include "transport/thrift_transport.h"
#include "transport/thrift_socket.h"
#include "../gen-c_glib/calculator.h"
int main(int argc, char** argv) {
ThriftSocket *tsocket = THRIFT_SOCKET( g_object_new (THRIFT_TYPE_SOCKET,
"hostname", "localhost",
"port", 9090, 0) );
ThriftTransport *transport = THRIFT_TRANSPORT( g_object_new (THRIFT_TYPE_BUFFERED_TRANSPORT,
"transport", tsocket, 0) );
ThriftProtocol *protocol = THRIFT_PROTOCOL ( g_object_new (THRIFT_TYPE_BINARY_PROTOCOL,
"transport", transport, 0) );
CalculatorClient *client = CALCULATOR_CLIENT( g_object_new(TYPE_CALCULATOR_CLIENT,
"input_protocol", protocol, /* ??? */
"output_protocol", protocol,
0) );
CalculatorIf *service = CALCULATOR_IF(client);
thrift_transport_open(transport, 0);
/* Real user code here */
thrift_transport_close(m_transport, 0);
g_object_unref (client);
g_object_unref (protocol);
g_object_unref (transport);
g_object_unref (tsocket);
}
{code}
Thanks for any help!
> c_glib tutorial
> ---------------
>
> Key: THRIFT-976
> URL: https://issues.apache.org/jira/browse/THRIFT-976
> Project: Thrift
> Issue Type: Improvement
> Components: C glib - Compiler, C glib - Library, Tutorial
> Reporter: Roger Meier
> Assignee: Michael Lum
> Priority: Minor
>
> It would be great to have a tutorial for the brand new c_glib library.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira