dcmwlm/include/wlmactmg.h

00001 /* 00002 * 00003 * Copyright (C) 1996-2001, OFFIS 00004 * 00005 * This software and supporting documentation were developed by 00006 * 00007 * Kuratorium OFFIS e.V. 00008 * Healthcare Information and Communication Systems 00009 * Escherweg 2 00010 * D-26121 Oldenburg, Germany 00011 * 00012 * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY 00013 * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR 00014 * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR 00015 * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND 00016 * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. 00017 * 00018 * Module: dcmwlm 00019 * 00020 * Author: Thomas Wilkens 00021 * 00022 * Purpose: Activity manager class for basic worklist management service 00023 * class provider engines. 00024 * 00025 * Last Update: $Author: wilkens $ 00026 * Update Date: $Date: 2003/07/02 09:17:55 $ 00027 * Source File: $Source: /share/dicom/cvs-depot/dcmtk/dcmwlm/include/wlmactmg.h,v $ 00028 * CVS/RCS Revision: $Revision: 1.11 $ 00029 * Status: $State: Exp $ 00030 * 00031 * CVS/RCS Log at end of file 00032 * 00033 */ 00034 00035 #ifndef WlmActivityManager_h 00036 #define WlmActivityManager_h 00037 00038 #include "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 char **supportedAbstractSyntaxes; 00079 int numberOfSupportedAbstractSyntaxes; 00081 OFConsole *logStream; 00083 WlmProcessTableType processTable; 00084 00088 void DumpMessage( const char *message ); 00089 00095 OFCondition WaitForAssociation( T_ASC_Network *net ); 00096 00101 void CleanChildren(); 00102 00107 OFCondition NegotiateAssociation( T_ASC_Association *assoc ); 00108 00113 void AddProcessToTable( int pid, T_ASC_Association *assoc ); 00114 00118 int CountChildProcesses(); 00119 00124 void RemoveProcessFromTable( int pid ); 00125 00130 void RefuseAssociation( T_ASC_Association **assoc, WlmRefuseReasonType reason ); 00131 00136 void HandleAssociation( T_ASC_Association *assoc ); 00137 00145 OFCondition ReceiveAndHandleCommands( T_ASC_Association *assoc ); 00146 00155 OFCondition HandleEchoSCP( T_ASC_Association *assoc, T_DIMSE_C_EchoRQ *req, T_ASC_PresentationContextID presId ); 00156 00165 OFCondition HandleFindSCP( T_ASC_Association *assoc, T_DIMSE_C_FindRQ *request, T_ASC_PresentationContextID presID ); 00166 00170 WlmActivityManager( const WlmActivityManager &Src ); 00171 00176 WlmActivityManager &operator=( const WlmActivityManager &Src ); 00177 00178 00179 public: 00196 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, OFConsole *logStreamv ); 00197 00200 ~WlmActivityManager(); 00201 00207 OFCondition StartProvidingService(); 00208 }; 00209 00210 #endif 00211 00212 /* 00213 ** CVS Log 00214 ** $Log: wlmactmg.h,v $ 00215 ** Revision 1.11 2003/07/02 09:17:55 wilkens 00216 ** Updated documentation to get rid of doxygen warnings. 00217 ** 00218 ** Revision 1.10 2002/12/16 11:08:36 wilkens 00219 ** Added missing #include "osconfig.h" to certain files. 00220 ** 00221 ** Revision 1.9 2002/12/12 16:48:35 wilkens 00222 ** Added some code to avoid compiler warning (unreachable code) on Sun CC 2.0.1. 00223 ** 00224 ** Revision 1.8 2002/08/05 09:09:59 wilkens 00225 ** Modfified the project's structure in order to be able to create a new 00226 ** application which contains both wlmscpdb and ppsscpdb. 00227 ** 00228 ** Revision 1.7 2002/07/17 13:10:37 wilkens 00229 ** Corrected some minor logical errors in the wlmscpdb sources and completely 00230 ** updated the wlmscpfs so that it does not use the original wlistctn sources 00231 ** any more but standard wlm sources which are now used by all three variants 00232 ** of wlmscps. 00233 ** 00234 ** Revision 1.6 2002/06/10 11:25:06 wilkens 00235 ** Made some corrections to keep gcc 2.95.3 quiet. 00236 ** 00237 ** Revision 1.5 2002/04/18 14:20:09 wilkens 00238 ** Modified Makefiles. Updated latest changes again. These are the latest 00239 ** sources. Added configure file. 00240 ** 00241 ** Revision 1.4 2002/01/08 19:10:04 joergr 00242 ** Minor adaptations to keep the gcc compiler on Linux and Solaris happy. 00243 ** Currently only the "file version" of the worklist SCP is supported on 00244 ** Unix systems. 00245 ** 00246 ** Revision 1.3 2002/01/08 17:45:34 joergr 00247 ** Reformatted source files (replaced Windows newlines by Unix ones, replaced 00248 ** tabulator characters by spaces, etc.) 00249 ** 00250 ** Revision 1.2 2002/01/08 17:35:39 joergr 00251 ** Reworked database support after trials at the hospital (modfied by MC/JR on 00252 ** 2002-01-08). 00253 ** 00254 ** 00255 */


Generated on 4 Nov 2004 for OFFIS DCMTK Version 3.5.3 by Doxygen 1.3.8