00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef WlmActivityManager_h
00036 #define WlmActivityManager_h
00037
00038 #include "dcmtk/config/osconfig.h"
00039
00040 class WlmDataSource;
00041 class OFCondition;
00042 class OFConsole;
00043
00047 class WlmActivityManager
00048 {
00049 protected:
00051 WlmDataSource *dataSource;
00053 OFCmdUnsignedInt opt_port;
00055 OFBool opt_refuseAssociation;
00057 OFBool opt_rejectWithoutImplementationUID;
00059 OFCmdUnsignedInt opt_sleepAfterFind;
00061 OFCmdUnsignedInt opt_sleepDuringFind;
00063 OFCmdUnsignedInt opt_maxPDU;
00065 E_TransferSyntax opt_networkTransferSyntax;
00067 OFBool opt_verbose;
00069 OFBool opt_debug;
00071 OFBool opt_failInvalidQuery;
00073 OFBool opt_singleProcess;
00075 int opt_maxAssociations;
00077 T_DIMSE_BlockingMode opt_blockMode;
00079 int opt_dimse_timeout;
00081 int opt_acse_timeout;
00083 char **supportedAbstractSyntaxes;
00085 int numberOfSupportedAbstractSyntaxes;
00087 OFConsole *logStream;
00089 WlmProcessTableType processTable;
00090
00094 void DumpMessage( const char *message );
00095
00101 OFCondition WaitForAssociation( T_ASC_Network *net );
00102
00107 void CleanChildren();
00108
00113 OFCondition NegotiateAssociation( T_ASC_Association *assoc );
00114
00119 void AddProcessToTable( int pid, T_ASC_Association *assoc );
00120
00124 int CountChildProcesses();
00125
00130 void RemoveProcessFromTable( int pid );
00131
00136 void RefuseAssociation( T_ASC_Association **assoc, WlmRefuseReasonType reason );
00137
00142 void HandleAssociation( T_ASC_Association *assoc );
00143
00151 OFCondition ReceiveAndHandleCommands( T_ASC_Association *assoc );
00152
00161 OFCondition HandleEchoSCP( T_ASC_Association *assoc, T_DIMSE_C_EchoRQ *req, T_ASC_PresentationContextID presId );
00162
00171 OFCondition HandleFindSCP( T_ASC_Association *assoc, T_DIMSE_C_FindRQ *request, T_ASC_PresentationContextID presID );
00172
00176 WlmActivityManager( const WlmActivityManager &Src );
00177
00182 WlmActivityManager &operator=( const WlmActivityManager &Src );
00183
00184
00185 public:
00205 WlmActivityManager(
00206 WlmDataSource *dataSourcev,
00207 OFCmdUnsignedInt opt_portv,
00208 OFBool opt_refuseAssociationv,
00209 OFBool opt_rejectWithoutImplementationUIDv,
00210 OFCmdUnsignedInt opt_sleepAfterFindv,
00211 OFCmdUnsignedInt opt_sleepDuringFindv,
00212 OFCmdUnsignedInt opt_maxPDUv,
00213 E_TransferSyntax opt_networkTransferSyntaxv,
00214 OFBool opt_verbosev,
00215 OFBool opt_debugv,
00216 OFBool opt_failInvalidQueryv,
00217 OFBool opt_singleProcessv,
00218 int opt_maxAssociationsv,
00219 T_DIMSE_BlockingMode opt_blockModev,
00220 int opt_dimse_timeoutv,
00221 int opt_acse_timeoutv,
00222 OFConsole *logStreamv );
00223
00226 ~WlmActivityManager();
00227
00233 OFCondition StartProvidingService();
00234 };
00235
00236 #endif
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287