DCMTK  Version 3.6.1 20170228
OFFIS DICOM Toolkit
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Member Functions | Private Member Functions | List of all members
DcmSCPPool< SCP, SCPPool, BaseSCPWorker > Class Template Reference

Implementation of DICOM SCP server pool. More...

+ Inheritance diagram for DcmSCPPool< SCP, SCPPool, BaseSCPWorker >:

Classes

struct  SCPWorker
 Helper class to use any class as an SCPWorker as long as it is a model of the SCP Thread Concept. More...
 

Public Member Functions

 DcmSCPPool ()
 Default construct a DcmSCPPool object.
 

Private Member Functions

virtual BaseSCPWorker * createSCPWorker ()
 Create a worker to be used for handling a request. More...
 

Detailed Description

template<typename SCP = DcmThreadSCP, typename SCPPool = DcmBaseSCPPool, typename BaseSCPWorker = OFTypename SCPPool::DcmBaseSCPWorker>
class DcmSCPPool< SCP, SCPPool, BaseSCPWorker >

Implementation of DICOM SCP server pool.

The pool waits for incoming TCP/IP connection requests, accepts them on TCP/IP level and hands the connection to a worker thread. The maximum number of worker threads, i.e. simultaneous connections, is configurable. The default is 5. At the moment, if no free worker slots are available, an incoming request is rejected with the error "local limit exceeded", i.e. those requests are not queued. This behaviour might change in the future.

Template Parameters
SCPthe service class provider to be instantiated for each request, should follow the SCP Thread Concept.
SCPPoolthe base SCP pool class to use. Use this parameter if you want to use a different implementation (probably derived from DcmBaseSCPPool) as base class for implementing the SCP pool.
BaseSCPWorkerthe base SCP worker class to use. Use this parameter if you want to use a different implementation of the SCP worker, e.g. for using processes instead of threads or sharing a single thread for multiple workers.

Member Function Documentation

template<typename SCP = DcmThreadSCP, typename SCPPool = DcmBaseSCPPool, typename BaseSCPWorker = OFTypename SCPPool::DcmBaseSCPWorker>
virtual BaseSCPWorker* DcmSCPPool< SCP, SCPPool, BaseSCPWorker >::createSCPWorker ( )
inlineprivatevirtual

Create a worker to be used for handling a request.

Returns
a pointer to a newly created SCP worker.

The documentation for this class was generated from the following file:


Generated on Tue Feb 28 2017 for DCMTK Version 3.6.1 20170228 by Doxygen 1.8.8