DCMTK  Version 3.6.1 20170228
OFFIS DICOM Toolkit
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
DcmBaseSCPPool::DcmBaseSCPWorker Class Referenceabstract

Abstract base class that handles forwarding the configuration and T_ASC_Association to the actual worker class for each worker thread. More...

+ Inheritance diagram for DcmBaseSCPPool::DcmBaseSCPWorker:

Public Member Functions

virtual ~DcmBaseSCPWorker ()
 Virtual Destructor.
 
virtual OFCondition setAssociation (T_ASC_Association *assoc)
 Set the association that should be handled by the worker thread. More...
 
virtual OFCondition setSharedConfig (const DcmSharedSCPConfig &config)=0
 Set SCP configuration that should be used by the worker in order to handle incoming association requests (presentation contexts, etc.). More...
 
virtual OFBool busy ()=0
 Check whether worker is busy. More...
 
virtual void exit ()
 Ends and exits worker thread. More...
 
- Public Member Functions inherited from OFThread
 OFThread ()
 default constructor. More...
 
virtual ~OFThread ()
 destructor. More...
 
int start ()
 adds a new thread of control to the current process. More...
 
int join ()
 blocks the calling thread until the thread referenced by the OFThread object terminates. More...
 
unsigned long threadID ()
 returns the thread identifier of the thread referenced by the OFThread object, if the thread has already been started. More...
 
OFBool equal (unsigned long tID)
 checks if the given thread ID matches the thread ID of the thread referenced by this object. More...
 

Protected Member Functions

 DcmBaseSCPWorker (DcmBaseSCPPool &pool)
 Protected constructor which is called within the friend class DcmSCPWorkerFactory in order to create a worker. More...
 
virtual void run ()
 Overwrites run() function provided by OFThread. More...
 
virtual OFCondition workerListen (T_ASC_Association *const assoc)=0
 Starts listening on the given association. More...
 

Protected Attributes

DcmBaseSCPPoolm_pool
 Reference to pool in order to notify pool if thread exits, etc.
 
T_ASC_Associationm_assoc
 Temporarily stores association parameter to be available for the run() method. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from OFThread
static void errorstr (OFString &description, int code)
 converts any of the error codes returned by the methods of this class into a textual description, which is written into the string object. More...
 
- Static Public Attributes inherited from OFThread
static const int busy
 this constant is returned by the join() method if another thread is already waiting for termination of the thread referenced by the OFThread object. More...
 
- Static Protected Member Functions inherited from OFThread
static void thread_exit ()
 terminates the calling thread, in a similar way that exit() terminates the calling process. More...
 
static unsigned long self ()
 returns the thread ID of the calling thread. More...
 

Detailed Description

Abstract base class that handles forwarding the configuration and T_ASC_Association to the actual worker class for each worker thread.

Constructor & Destructor Documentation

DcmBaseSCPPool::DcmBaseSCPWorker::DcmBaseSCPWorker ( DcmBaseSCPPool pool)
protected

Protected constructor which is called within the friend class DcmSCPWorkerFactory in order to create a worker.

Parameters
poolHandle to the SCP pool in order to inform pool about exiting the underlying thread, etc.

Member Function Documentation

virtual OFBool DcmBaseSCPPool::DcmBaseSCPWorker::busy ( )
pure virtual

Check whether worker is busy.

Returns
OFTrue if worker is busy, OFFalse otherwise.
virtual void DcmBaseSCPPool::DcmBaseSCPWorker::exit ( )
virtual

Ends and exits worker thread.

Call will not return.

virtual void DcmBaseSCPPool::DcmBaseSCPWorker::run ( )
protectedvirtual

Overwrites run() function provided by OFThread.

Is automatically executed when start() is called (also provided by OFThread).

Implements OFThread.

virtual OFCondition DcmBaseSCPPool::DcmBaseSCPWorker::setAssociation ( T_ASC_Association assoc)
virtual

Set the association that should be handled by the worker thread.

This must happen before actually calling run() (i.e. start()) on the worker.

Parameters
assocThe association that should be handled by the worker.
Returns
EC_Normal if OK, error code otherwise. An error may occur if the the function was called before with a valid association, or if the given association is NULL.
virtual OFCondition DcmBaseSCPPool::DcmBaseSCPWorker::setSharedConfig ( const DcmSharedSCPConfig config)
pure virtual

Set SCP configuration that should be used by the worker in order to handle incoming association requests (presentation contexts, etc.).

Parameters
configA DcmSharedSCPConfig object to be used by this worker.
Returns
EC_Normal, if configuration is accepted, error code otherwise.
virtual OFCondition DcmBaseSCPPool::DcmBaseSCPWorker::workerListen ( T_ASC_Association *const  assoc)
protectedpure virtual

Starts listening on the given association.

Note that the underlying TCP connection must be already accepted, i.e. ASC_receiveAssociation() must have been called already on the association; after that, this listen() function kicks in and has to take over full responsibility of the association, including accepting it, refusing it, handling incoming DIMSE messages, freeing memory of the T_ASC_Association struct, and the like.

Parameters
assocPointer to the association that should be handled. Must not be NULL.
Returns
EC_Normal if association was handled properly (i.e. was handled, refused, ... Only in case of connection or messaging errors, an error code will be returned instead.

Member Data Documentation

T_ASC_Association* DcmBaseSCPPool::DcmBaseSCPWorker::m_assoc
protected

Temporarily stores association parameter to be available for the run() method.

run() will set the pointer immediately to NULL; the deletion takes place inside the actual worker m_worker which starts its operation afterwards in run().


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