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_failInvalidQueryv, OFBool opt_singleProcessv, int opt_maxAssociationsv, T_DIMSE_BlockingMode opt_blockModev, int opt_dimse_timeoutv, int opt_acse_timeoutv, OFBool opt_forkedChild=OFFalse, int argcv=0, char *argvv[]=NULL) | |
constructor. | |
~WlmActivityManager () | |
destructor | |
OFCondition | StartProvidingService () |
Starts providing the implemented service for calling SCUs. | |
Protected Member Functions | |
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. | |
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. | |
WlmActivityManager & | operator= (const WlmActivityManager &Src) |
Protected undefined operator=. | |
Protected Attributes | |
WlmDataSource * | dataSource |
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_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 | |
OFBool | opt_forkedChild |
indicates, that this process was spawn as child from a parent process needed for multiprocess mode on WIN32 | |
int | cmd_argc |
number of arguments in commandline, needed for multiprocess mode on WIN32 | |
char ** | cmd_argv |
complete command line, needed for multiprocess mode on WIN32 | |
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 | |
OFList< WlmProcessSlotType * > | processTable |
table of processes for non-single process mode |
Definition at line 46 of file wlmactmg.h.
WlmActivityManager::WlmActivityManager | ( | const WlmActivityManager & | Src | ) | [protected] |
Protected undefined copy-constructor.
Shall never be called.
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_failInvalidQueryv, | |||
OFBool | opt_singleProcessv, | |||
int | opt_maxAssociationsv, | |||
T_DIMSE_BlockingMode | opt_blockModev, | |||
int | opt_dimse_timeoutv, | |||
int | opt_acse_timeoutv, | |||
OFBool | opt_forkedChild = OFFalse , |
|||
int | argcv = 0 , |
|||
char * | argvv[] = NULL | |||
) |
constructor.
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_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 | |
opt_forkedChildv | Indicates, whether this process was "forked" from a parent process, default: false | |
argcv | Number of commandline arguments given | |
argvv | Complete command line |
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.
net | Contains network parameters. |
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.
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.
assoc | The association (network connection to another DICOM application). |
void WlmActivityManager::AddProcessToTable | ( | int | pid, | |
T_ASC_Association * | assoc | |||
) | [protected] |
This function adds a process to the table that stores process information.
pid | the process id of the sub-process which was just started. | |
assoc | The association (network connection to another DICOM application). |
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.
pid | process id. |
void WlmActivityManager::RefuseAssociation | ( | T_ASC_Association ** | assoc, | |
WlmRefuseReasonType | reason | |||
) | [protected] |
This function takes care of refusing an assocation request.
assoc | The association (network connection to another DICOM application). | |
reason | The reason why the association request will be refused. |
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.
assoc | The association (network connection to another DICOM application). |
OFCondition WlmActivityManager::ReceiveAndHandleCommands | ( | T_ASC_Association * | assoc | ) | [protected] |
This function takes care of handling the other DICOM application's request.
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.
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. |
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.
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. |
WlmActivityManager& WlmActivityManager::operator= | ( | const WlmActivityManager & | Src | ) | [protected] |
Protected undefined operator=.
Shall never be called.
Src | Source object. |
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.