Files
cdev-1.7.2n/extensions/CLIPService/CLIPRequestObject.cc
2022-12-13 12:44:04 +01:00

48 lines
1.1 KiB
C++

#include <cdevSystem.h>
#include <cdevDirectory.h>
#include <CLIPService.h>
#include <CLIPRequestObject.h>
CLIPRequestObject::CLIPRequestObject ( char * device, char * message, cdevSystem & system)
: cdevClientRequestObject(device, message, system)
{
cdevData output;
*host = 0;
port = 0;
sprintf (host, "resolveServiceData %s %s", device, message);
if((system.nameServer()).send(host, NULL, &output)==CDEV_SUCCESS)
{
*host = 0;
output.get ("host", host, 256);
output.get ("port", &port);
}
else *host = 0;
}
int CLIPRequestObject::getServerHandler ( ServerHandler ** Handler )
{
CLIPService * svc = (CLIPService *)service_;
int result = CDEV_SUCCESS;
*Handler = NULL;
if (*server==0 && *DDL_server!=0) strcpy(server, DDL_server);
if (*server!=0 && handler==NULL)
{
if((*Handler = svc->connect(server,
(*host)?host:(char *)NULL,
(*host)?port:0))==NULL) result = CDEV_ERROR;
else
{
handler = *Handler;
handler->registerServerCallback(this);
}
}
else *Handler = handler;
return result;
}