Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

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 8 Dec 2004 for OFFIS DCMTK Version 3.5.3 by Doxygen 1.3.9.1