ATLAS Offline Software
Loading...
Searching...
No Matches
ONCRPCServerThreads.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef JIVEXML_ONCRPCSERVERPROC_H
6#define JIVEXML_ONCRPCSERVERPROC_H
7
9
10namespace JiveXML{
11
12 //Forward declarations
13 class IServer;
14 class ThreadCollection;
15
16 //Global link to thread collection
18
24 ServerThreadArguments_t(JiveXML::IServer* const serverPtr, const int portNumber, void (* const cleanupHandler)(void*)=NULL):
25 ServerPtr(serverPtr), PortNumber(portNumber), CleanUpHandler(cleanupHandler) {} //Constructor
26 JiveXML::IServer* const ServerPtr; //const pointer to the gaudi service
27 const int PortNumber; //port number to bind to
28 void (* const CleanUpHandler)(void*); //Cleanup handler to be run when the main thread exits
29 };
30
34 void* ONCRPCServerThread( void* args );
35
42 DispatchThreadArguments_t(JiveXML::IServer* const serverPtr, const svc_req* rqp, const Event* event, const EventRequest* req):
43 ServerSvcPtr(serverPtr),rqstp(rqp),evt(event),evtReq(req){} //Constructor
44 JiveXML::IServer* const ServerSvcPtr; //cannot modify pointer, only object
45 const struct svc_req* rqstp;
46 const Event* evt;
48 };
49
53 void* ONCRPCDispatchThread( void* args );
54
59 extern "C" void ONCRPCRequestHandler( struct svc_req* rqstp, SVCXPRT* transp);
60
61}
62#endif
Pure abstract interface for all full server implementations.
Definition IServer.h:22
This class handles a collection of threads.
This header is shared inbetween the C-style server thread and the C++ Athena ServerSvc.
void * ONCRPCDispatchThread(void *args)
This is the thread handling the request - one thread per request.
struct DispatchThreadArguments_t DispatchThreadArguments
Arguments handed over fromt the main server thread to the thread dispatching the request (one for eac...
ThreadCollection *const dispatchThreads
struct EventRequest_t EventRequest
Data structures for GetEvent functions.
struct Event_t Event
void ONCRPCRequestHandler(struct svc_req *rqstp, SVCXPRT *transp)
The Request handler is called from the RPC kernel routines - hence extern C It creates a new dispatch...
struct ServerThreadArguments_t ServerThreadArguments
Arguments handed over fromt the main (Athena) thread to the server thread.
void * ONCRPCServerThread(void *args)
This is the actual server thread, which takes above arguments.
DispatchThreadArguments_t(JiveXML::IServer *const serverPtr, const svc_req *rqp, const Event *event, const EventRequest *req)
ServerThreadArguments_t(JiveXML::IServer *const serverPtr, const int portNumber, void(*const cleanupHandler)(void *)=NULL)