Expose the interface for AppServer registration to the current Session
This commit is contained in:
parent
850da6f9d0
commit
4b99ad9e4a
|
@ -48,5 +48,6 @@ char const * appserver_get_app(AppServer * appserver);
|
||||||
|
|
||||||
/* useful */
|
/* useful */
|
||||||
int appserver_loop(AppServer * appserver);
|
int appserver_loop(AppServer * appserver);
|
||||||
|
int appserver_register(AppServer * appserver, char const * name);
|
||||||
|
|
||||||
#endif /* !LIBAPP_APP_APPSERVER_H */
|
#endif /* !LIBAPP_APP_APPSERVER_H */
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
struct _AppServer
|
struct _AppServer
|
||||||
{
|
{
|
||||||
App * app;
|
App * app;
|
||||||
|
char * name;
|
||||||
AppServerOptions options;
|
AppServerOptions options;
|
||||||
AppInterface * interface;
|
AppInterface * interface;
|
||||||
Event * event;
|
Event * event;
|
||||||
|
@ -71,6 +72,7 @@ AppServer * appserver_new_event(App * self, AppServerOptions options,
|
||||||
if((appserver = object_new(sizeof(*appserver))) == NULL)
|
if((appserver = object_new(sizeof(*appserver))) == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
appserver->app = self;
|
appserver->app = self;
|
||||||
|
appserver->name = string_new(app);
|
||||||
appserver->options = options;
|
appserver->options = options;
|
||||||
appserver->interface = appinterface_new_server(app);
|
appserver->interface = appinterface_new_server(app);
|
||||||
appserver->helper.data = appserver;
|
appserver->helper.data = appserver;
|
||||||
|
@ -80,11 +82,11 @@ AppServer * appserver_new_event(App * self, AppServerOptions options,
|
||||||
appserver->transport = apptransport_new_app(ATM_SERVER,
|
appserver->transport = apptransport_new_app(ATM_SERVER,
|
||||||
&appserver->helper, app, name, appserver->event);
|
&appserver->helper, app, name, appserver->event);
|
||||||
/* check for errors */
|
/* check for errors */
|
||||||
if(appserver->interface == NULL || appserver->transport == NULL
|
if(appserver->name == NULL || appserver->interface == NULL
|
||||||
|
|| appserver->transport == NULL
|
||||||
|| appserver->event == NULL
|
|| appserver->event == NULL
|
||||||
|| (((options & ASO_REGISTER) == ASO_REGISTER)
|
|| (((options & ASO_REGISTER) == ASO_REGISTER)
|
||||||
&& apptransport_server_register(
|
&& appserver_register(appserver, NULL) != 0))
|
||||||
appserver->transport, app) != 0))
|
|
||||||
{
|
{
|
||||||
appserver_delete(appserver);
|
appserver_delete(appserver);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -126,6 +128,14 @@ int appserver_loop(AppServer * appserver)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* appserver_register */
|
||||||
|
int appserver_register(AppServer * appserver, char const * name)
|
||||||
|
{
|
||||||
|
return apptransport_server_register(appserver->transport,
|
||||||
|
appserver->name, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* private */
|
/* private */
|
||||||
/* appserver_helper_message */
|
/* appserver_helper_message */
|
||||||
static int _helper_message_call(AppServer * appserver, AppTransport * transport,
|
static int _helper_message_call(AppServer * appserver, AppTransport * transport,
|
||||||
|
|
|
@ -319,7 +319,8 @@ int apptransport_client_send(AppTransport * transport, AppMessage * message,
|
||||||
|
|
||||||
|
|
||||||
/* apptransport_server_register */
|
/* apptransport_server_register */
|
||||||
int apptransport_server_register(AppTransport * transport, char const * app)
|
int apptransport_server_register(AppTransport * transport, char const * app,
|
||||||
|
char const * name)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
int res = -1;
|
int res = -1;
|
||||||
|
@ -330,7 +331,7 @@ int apptransport_server_register(AppTransport * transport, char const * app)
|
||||||
"Only servers can register to sessions");
|
"Only servers can register to sessions");
|
||||||
if(transport->appclient != NULL)
|
if(transport->appclient != NULL)
|
||||||
appclient_delete(transport->appclient);
|
appclient_delete(transport->appclient);
|
||||||
if((transport->appclient = appclient_new(NULL, session, NULL)) == NULL)
|
if((transport->appclient = appclient_new(NULL, session, name)) == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
ret = appclient_call(transport->appclient, (void **)&res, "register",
|
ret = appclient_call(transport->appclient, (void **)&res, "register",
|
||||||
app, transport->name);
|
app, transport->name);
|
||||||
|
|
|
@ -56,7 +56,8 @@ int apptransport_client_send(AppTransport * transport, AppMessage * message,
|
||||||
int acknowledge);
|
int acknowledge);
|
||||||
|
|
||||||
/* ATM_SERVER */
|
/* ATM_SERVER */
|
||||||
int apptransport_server_register(AppTransport * transport, char const * app);
|
int apptransport_server_register(AppTransport * transport, char const * app,
|
||||||
|
char const * name);
|
||||||
int apptransport_server_send(AppTransport * transport,
|
int apptransport_server_send(AppTransport * transport,
|
||||||
AppTransportClient * client, AppMessage * message);
|
AppTransportClient * client, AppMessage * message);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user