WlmActivityManager Class Reference

This class encapsulates data structures and operations for basic worklist management service class providers. More...

List of all members.

Public Member Functions

 WlmActivityManager (WlmDataSource *dataSourcev, OFCmdUnsignedInt opt_portv, OFBool opt_refuseAssociationv, OFBool opt_rejectWithoutImplementationUIDv, OFCmdUnsignedInt opt_sleepAfterFindv, OFCmdUnsignedInt opt_sleepDuringFindv, OFCmdUnsignedInt opt_maxPDUv, E_TransferSyntax opt_networkTransferSyntaxv, OFBool opt_verbosev, OFBool opt_debugv, OFBool opt_failInvalidQueryv, OFBool opt_singleProcessv, int opt_maxAssociationsv, T_DIMSE_BlockingMode opt_blockModev, int opt_dimse_timeoutv, int opt_acse_timeoutv, OFConsole *logStreamv)
 constructor.
 ~WlmActivityManager ()
 destructor
OFCondition StartProvidingService ()
 Starts providing the implemented service for calling SCUs.

Protected Member Functions

void DumpMessage (const char *message)
 This function dumps the given information on a stream.
OFCondition WaitForAssociation (T_ASC_Network *net)
 This function takes care of receiving, negotiating and accepting/refusing an association request.
void CleanChildren ()
 This function takes care of removing items referring to (terminated) subprocess from the table which stores all subprocess information.
OFCondition NegotiateAssociation (T_ASC_Association *assoc)
 This function negotiates a presentation context which will be used by this application and the other DICOM appliation that requests an association.
void AddProcessToTable (int pid, T_ASC_Association *assoc)
 This function adds a process to the table that stores process information.
int CountChildProcesses ()
 This function counts all child processes which are still referenced in the process table.
void RemoveProcessFromTable (int pid)
 This function removes one particular item from the table which stores all subprocess information.
void RefuseAssociation (T_ASC_Association **assoc, WlmRefuseReasonType reason)
 This function takes care of refusing an assocation request.
void HandleAssociation (T_ASC_Association *assoc)
 This function takes care of handling the other DICOM application's request.
OFCondition ReceiveAndHandleCommands (T_ASC_Association *assoc)
 This function takes care of handling the other DICOM application's request.
OFCondition HandleEchoSCP (T_ASC_Association *assoc, T_DIMSE_C_EchoRQ *req, T_ASC_PresentationContextID presId)
 Having received a DIMSE C-ECHO-RQ message, this function takes care of sending a DIMSE C-ECHO-RSP message over the network connection.
OFCondition HandleFindSCP (T_ASC_Association *assoc, T_DIMSE_C_FindRQ *request, T_ASC_PresentationContextID presID)
 This function processes a DIMSE C-FIND-RQ commmand that was received over the network connection.
 WlmActivityManager (const WlmActivityManager &Src)
 Protected undefined copy-constructor.
WlmActivityManageroperator= (const WlmActivityManager &Src)
 Protected undefined operator=.

Protected Attributes

WlmDataSourcedataSource
 data source connection object
OFCmdUnsignedInt opt_port
 port on which the application is listening
OFBool opt_refuseAssociation
 indicates if the application shall refuse any association
OFBool opt_rejectWithoutImplementationUID
 indicates if the application shall reject associations without implementation class uids
OFCmdUnsignedInt opt_sleepAfterFind
 indicates how long the application shall sleep after a find
OFCmdUnsignedInt opt_sleepDuringFind
 indicates how long the application shall sleep during a find
OFCmdUnsignedInt opt_maxPDU
 max pdu size
E_TransferSyntax opt_networkTransferSyntax
 preferred network transfer syntax
OFBool opt_verbose
 indicates if the application is run in verbose mode or not
OFBool opt_debug
 indicates if the application is run in debug mode or not
OFBool opt_failInvalidQuery
 indicates if the application shall fail on an invalid C-Find RQ message
OFBool opt_singleProcess
 indicates if the application is run in single process mode or not
int opt_maxAssociations
 maximum number of association for non-single process mode
T_DIMSE_BlockingMode opt_blockMode
 blocking mode for DIMSE operations
int opt_dimse_timeout
 timeout for DIMSE operations
int opt_acse_timeout
 timeout for ACSE operations
char ** supportedAbstractSyntaxes
 array of supported abstract syntaxes
int numberOfSupportedAbstractSyntaxes
 number of array fields
OFConsolelogStream
 stream log information will be dumped to
WlmProcessTableType processTable
 table of processes for non-single process mode


Detailed Description

This class encapsulates data structures and operations for basic worklist management service class providers.

Definition at line 47 of file wlmactmg.h.


Constructor & Destructor Documentation

WlmActivityManager::WlmActivityManager const WlmActivityManager Src  )  [protected]
 

Protected undefined copy-constructor.

Shall never be called.

Parameters:
Src Source object.

WlmActivityManager::WlmActivityManager WlmDataSource dataSourcev,
OFCmdUnsignedInt  opt_portv,
OFBool  opt_refuseAssociationv,
OFBool  opt_rejectWithoutImplementationUIDv,
OFCmdUnsignedInt  opt_sleepAfterFindv,
OFCmdUnsignedInt  opt_sleepDuringFindv,
OFCmdUnsignedInt  opt_maxPDUv,
E_TransferSyntax  opt_networkTransferSyntaxv,
OFBool  opt_verbosev,
OFBool  opt_debugv,
OFBool  opt_failInvalidQueryv,
OFBool  opt_singleProcessv,
int  opt_maxAssociationsv,
T_DIMSE_BlockingMode  opt_blockModev,
int  opt_dimse_timeoutv,
int  opt_acse_timeoutv,
OFConsole logStreamv
 

constructor.

Parameters:
dataSourcev Pointer to the data source which shall be used.
opt_portv The port on which the application is supposed to listen.
opt_refuseAssociationv Specifies if an association shall always be refused by the SCP.
opt_rejectWithoutImplementationUIDv Specifies if the application shall reject an association if no implementation class UID is provided by the calling SCU.
opt_sleepAfterFindv Specifies how many seconds the application is supposed to sleep after having handled a C-FIND-Rsp.
opt_sleepDuringFindv Specifies how many seconds the application is supposed to sleep during the handling of a C-FIND-Rsp.
opt_maxPDUv Maximum length of a PDU that can be received in bytes.
opt_networkTransferSyntaxv Specifies the preferred network transfer syntaxes.
opt_verbosev Specifies if the application shall print processing details or not.
opt_debugv Specifies if the application shall print debug information.
opt_failInvalidQueryv Specifies if the application shall fail on an invalid query.
opt_singleProcessv Specifies if the application shall run in a single process.
opt_maxAssociationsv Specifies many concurrent associations the application shall be able to handle.
opt_blockModev Specifies the blocking mode for DIMSE operations
opt_dimse_timeoutv Specifies the timeout for DIMSE operations
opt_acse_timeoutv Specifies the timeout for ACSE operations
logStreamv A stream information can be dumped to.


Member Function Documentation

void WlmActivityManager::AddProcessToTable int  pid,
T_ASC_Association assoc
[protected]
 

This function adds a process to the table that stores process information.

Parameters:
pid the process id of the sub-process which was just started.
assoc The association (network connection to another DICOM application).

void WlmActivityManager::CleanChildren  )  [protected]
 

This function takes care of removing items referring to (terminated) subprocess from the table which stores all subprocess information.

Three different versions for three different platforms are implemented.

int WlmActivityManager::CountChildProcesses  )  [protected]
 

This function counts all child processes which are still referenced in the process table.

Returns:
The current amount of child processes.

void WlmActivityManager::DumpMessage const char *  message  )  [protected]
 

This function dumps the given information on a stream.

Used for dumping information in normal, debug and verbose mode.

Parameters:
message The message to dump.

void WlmActivityManager::HandleAssociation T_ASC_Association assoc  )  [protected]
 

This function takes care of handling the other DICOM application's request.

After having accomplished all necessary steps, the association will be dropped and destroyed.

Parameters:
assoc The association (network connection to another DICOM application).

OFCondition WlmActivityManager::HandleEchoSCP T_ASC_Association assoc,
T_DIMSE_C_EchoRQ req,
T_ASC_PresentationContextID  presId
[protected]
 

Having received a DIMSE C-ECHO-RQ message, this function takes care of sending a DIMSE C-ECHO-RSP message over the network connection.

Parameters:
assoc The association (network connection to another DICOM application).
req The DIMSE C-ECHO-RQ message that was received.
presId The ID of the presentation context which was specified in the PDV which contained the DIMSE command.
Returns:
OFCondition value denoting success or error.

OFCondition WlmActivityManager::HandleFindSCP T_ASC_Association assoc,
T_DIMSE_C_FindRQ request,
T_ASC_PresentationContextID  presID
[protected]
 

This function processes a DIMSE C-FIND-RQ commmand that was received over the network connection.

Parameters:
assoc The association (network connection to another DICOM application).
request The DIMSE C-FIND-RQ message that was received.
presID The ID of the presentation context which was specified in the PDV which contained the DIMSE command.
Returns:
OFCondition value denoting success or error.

OFCondition WlmActivityManager::NegotiateAssociation T_ASC_Association assoc  )  [protected]
 

This function negotiates a presentation context which will be used by this application and the other DICOM appliation that requests an association.

Parameters:
assoc The association (network connection to another DICOM application).

WlmActivityManager& WlmActivityManager::operator= const WlmActivityManager Src  )  [protected]
 

Protected undefined operator=.

Shall never be called.

Parameters:
Src Source object.
Returns:
Reference to this.

OFCondition WlmActivityManager::ReceiveAndHandleCommands T_ASC_Association assoc  )  [protected]
 

This function takes care of handling the other DICOM application's request.

Parameters:
assoc The association (network connection to another DICOM application).
Returns:
An OFCondition value 'cond' for which 'cond.bad()' will always be set indicating that either some kind of error occurred, or that the peer aborted the association (DUL_PEERABORTEDASSOCIATION), or that the peer requested the release of the association (DUL_PEERREQUESTEDRELEASE).

void WlmActivityManager::RefuseAssociation T_ASC_Association **  assoc,
WlmRefuseReasonType  reason
[protected]
 

This function takes care of refusing an assocation request.

Parameters:
assoc The association (network connection to another DICOM application).
reason The reason why the association request will be refused.

void WlmActivityManager::RemoveProcessFromTable int  pid  )  [protected]
 

This function removes one particular item from the table which stores all subprocess information.

The item which shall be deleted will be identified by its process id.

Parameters:
pid process id.

OFCondition WlmActivityManager::StartProvidingService  ) 
 

Starts providing the implemented service for calling SCUs.

After having created an instance of this class, this function shall be called from main.

Returns:
Value that is supposed to be returned from main().

OFCondition WlmActivityManager::WaitForAssociation T_ASC_Network net  )  [protected]
 

This function takes care of receiving, negotiating and accepting/refusing an association request.

Additionally, it handles the request the association requesting application transmits after a connection isd established.

Parameters:
net Contains network parameters.


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


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5