Beginning to receive incoming messages (over TCP)
This commit is contained in:
parent
bc6c472588
commit
b8db50354e
|
@ -40,6 +40,12 @@ struct _AppTransport
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* prototypes */
|
||||||
|
/* helpers */
|
||||||
|
static int _apptransport_helper_client_receive(AppTransport * transport,
|
||||||
|
AppTransportClient * client, AppMessage * message);
|
||||||
|
|
||||||
|
|
||||||
/* protected */
|
/* protected */
|
||||||
/* functions */
|
/* functions */
|
||||||
/* apptransport_new */
|
/* apptransport_new */
|
||||||
|
@ -76,6 +82,7 @@ AppTransport * apptransport_new(AppTransportMode mode, char const * plugin,
|
||||||
static void _new_helper(AppTransport * transport)
|
static void _new_helper(AppTransport * transport)
|
||||||
{
|
{
|
||||||
transport->helper.transport = transport;
|
transport->helper.transport = transport;
|
||||||
|
transport->helper.client_receive = _apptransport_helper_client_receive;
|
||||||
/* FIXME really implement */
|
/* FIXME really implement */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,3 +96,15 @@ void apptransport_delete(AppTransport * transport)
|
||||||
plugin_delete(transport->plugin);
|
plugin_delete(transport->plugin);
|
||||||
object_delete(transport);
|
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;
|
||||||
|
}
|
||||||
|
|
|
@ -670,6 +670,8 @@ static int _tcp_callback_connect(int fd, TCP * tcp)
|
||||||
static int _tcp_socket_callback_read(int fd, TCPSocket * tcpsocket)
|
static int _tcp_socket_callback_read(int fd, TCPSocket * tcpsocket)
|
||||||
{
|
{
|
||||||
const size_t inc = INC;
|
const size_t inc = INC;
|
||||||
|
TCP * tcp = tcpsocket->tcp;
|
||||||
|
AppTransportPluginHelper * helper = tcp->helper;
|
||||||
ssize_t ssize;
|
ssize_t ssize;
|
||||||
char * p;
|
char * p;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
@ -726,7 +728,8 @@ static int _tcp_socket_callback_read(int fd, TCPSocket * tcpsocket)
|
||||||
}
|
}
|
||||||
if(message != NULL)
|
if(message != NULL)
|
||||||
{
|
{
|
||||||
/* FIXME report the message */
|
helper->client_receive(helper->transport, tcpsocket->client,
|
||||||
|
message);
|
||||||
appmessage_delete(message);
|
appmessage_delete(message);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -45,6 +45,8 @@ static int _transport(char const * protocol, char const * name);
|
||||||
/* helpers */
|
/* helpers */
|
||||||
static AppTransportClient * _transport_helper_client_new(
|
static AppTransportClient * _transport_helper_client_new(
|
||||||
AppTransport * transport);
|
AppTransport * transport);
|
||||||
|
static int _transport_helper_client_receive(AppTransport * transport,
|
||||||
|
AppTransportClient * client, AppMessage * message);
|
||||||
|
|
||||||
/* callbacks */
|
/* callbacks */
|
||||||
static int _transport_callback_idle(void * data);
|
static int _transport_callback_idle(void * data);
|
||||||
|
@ -82,6 +84,7 @@ static int _transport(char const * protocol, char const * name)
|
||||||
helper->transport = &transport;
|
helper->transport = &transport;
|
||||||
helper->event = event_new();
|
helper->event = event_new();
|
||||||
helper->client_new = _transport_helper_client_new;
|
helper->client_new = _transport_helper_client_new;
|
||||||
|
helper->client_receive = _transport_helper_client_receive;
|
||||||
/* create a server and a client */
|
/* create a server and a client */
|
||||||
transport.server = (helper->event != NULL)
|
transport.server = (helper->event != NULL)
|
||||||
? transport.plugind->init(helper, ATM_SERVER, name) : 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 */
|
/* callbacks */
|
||||||
/* transport_callback_idle */
|
/* transport_callback_idle */
|
||||||
static int _transport_callback_idle(void * data)
|
static int _transport_callback_idle(void * data)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user