Beginning to receive incoming messages (over TCP)

This commit is contained in:
Pierre Pronchery 2013-01-08 03:24:55 +01:00
parent bc6c472588
commit b8db50354e
3 changed files with 38 additions and 1 deletions

View File

@ -40,6 +40,12 @@ struct _AppTransport
};
/* prototypes */
/* helpers */
static int _apptransport_helper_client_receive(AppTransport * transport,
AppTransportClient * client, AppMessage * message);
/* protected */
/* functions */
/* apptransport_new */
@ -76,6 +82,7 @@ AppTransport * apptransport_new(AppTransportMode mode, char const * plugin,
static void _new_helper(AppTransport * transport)
{
transport->helper.transport = transport;
transport->helper.client_receive = _apptransport_helper_client_receive;
/* FIXME really implement */
}
@ -89,3 +96,15 @@ void apptransport_delete(AppTransport * transport)
plugin_delete(transport->plugin);
object_delete(transport);
}
/* private */
/* functions */
/* helpers */
/* apptransport_helper_client_receive */
static int _apptransport_helper_client_receive(AppTransport * transport,
AppTransportClient * client, AppMessage * message)
{
/* FIXME implement */
return 0;
}

View File

@ -670,6 +670,8 @@ static int _tcp_callback_connect(int fd, TCP * tcp)
static int _tcp_socket_callback_read(int fd, TCPSocket * tcpsocket)
{
const size_t inc = INC;
TCP * tcp = tcpsocket->tcp;
AppTransportPluginHelper * helper = tcp->helper;
ssize_t ssize;
char * p;
size_t size;
@ -726,7 +728,8 @@ static int _tcp_socket_callback_read(int fd, TCPSocket * tcpsocket)
}
if(message != NULL)
{
/* FIXME report the message */
helper->client_receive(helper->transport, tcpsocket->client,
message);
appmessage_delete(message);
}
else

View File

@ -45,6 +45,8 @@ static int _transport(char const * protocol, char const * name);
/* helpers */
static AppTransportClient * _transport_helper_client_new(
AppTransport * transport);
static int _transport_helper_client_receive(AppTransport * transport,
AppTransportClient * client, AppMessage * message);
/* callbacks */
static int _transport_callback_idle(void * data);
@ -82,6 +84,7 @@ static int _transport(char const * protocol, char const * name)
helper->transport = &transport;
helper->event = event_new();
helper->client_new = _transport_helper_client_new;
helper->client_receive = _transport_helper_client_receive;
/* create a server and a client */
transport.server = (helper->event != NULL)
? transport.plugind->init(helper, ATM_SERVER, name) : NULL;
@ -135,6 +138,18 @@ static AppTransportClient * _transport_helper_client_new(
}
/* transport_helper_client_receive */
static int _transport_helper_client_receive(AppTransport * transport,
AppTransportClient * client, AppMessage * message)
{
#ifdef DEBUG
fprintf(stderr, "DEBUG: %s()\n", __func__);
#endif
/* FIXME really implement */
return 0;
}
/* callbacks */
/* transport_callback_idle */
static int _transport_callback_idle(void * data)