00001 /* 00002 * 00003 * Copyright (C) 1994-2010, OFFIS e.V. 00004 * All rights reserved. See COPYRIGHT file for details. 00005 * 00006 * This software and supporting documentation were partly developed by 00007 * 00008 * OFFIS e.V. 00009 * R&D Division Health 00010 * Escherweg 2 00011 * D-26121 Oldenburg, Germany 00012 * 00013 * For further copyrights, see the following paragraphs. 00014 * 00015 */ 00016 00017 /* 00018 Copyright (C) 1993, 1994, RSNA and Washington University 00019 00020 The software and supporting documentation for the Radiological 00021 Society of North America (RSNA) 1993, 1994 Digital Imaging and 00022 Communications in Medicine (DICOM) Demonstration were developed 00023 at the 00024 Electronic Radiology Laboratory 00025 Mallinckrodt Institute of Radiology 00026 Washington University School of Medicine 00027 510 S. Kingshighway Blvd. 00028 St. Louis, MO 63110 00029 as part of the 1993, 1994 DICOM Central Test Node project for, and 00030 under contract with, the Radiological Society of North America. 00031 00032 THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR 00033 WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS 00034 PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR 00035 USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY 00036 SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF 00037 THE SOFTWARE IS WITH THE USER. 00038 00039 Copyright of the software and supporting documentation is 00040 jointly owned by RSNA and Washington University, and free access 00041 is hereby granted as a license to use this software, copy this 00042 software and prepare derivative works based upon this software. 00043 However, any distribution of this software source code or 00044 supporting documentation or derivative works (source code and 00045 supporting documentation) must include the three paragraphs of 00046 the copyright notice. 00047 */ 00048 00049 /* 00050 ** DICOM 93 00051 ** Electronic Radiology Laboratory 00052 ** Mallinckrodt Institute of Radiology 00053 ** Washington University School of Medicine 00054 ** 00055 ** Module Name(s): 00056 ** Author, Date: Stephen M. Moore, 11-May-92 00057 ** Intent: This module defines structures and constants needed 00058 ** to implement the DICOM Upper Layer state machine. 00059 ** Last Update: $Author: joergr $, $Date: 2010-12-01 08:26:36 $ 00060 ** Revision: $Revision: 1.6 $ 00061 ** Status: $State: Exp $ 00062 */ 00063 00064 #ifndef DULFSM_H 00065 #define DULFSM_H 00066 00067 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00068 00069 #define A_ASSOCIATE_REQ_LOCAL_USER 0 00070 #define TRANS_CONN_CONFIRM_LOCAL_USER 1 00071 #define A_ASSOCIATE_AC_PDU_RCV 2 00072 #define A_ASSOCIATE_RJ_PDU_RCV 3 00073 #define TRANS_CONN_INDICATION 4 00074 #define A_ASSOCIATE_RQ_PDU_RCV 5 00075 #define A_ASSOCIATE_RESPONSE_ACCEPT 6 00076 #define A_ASSOCIATE_RESPONSE_REJECT 7 00077 #define P_DATA_REQ 8 00078 #define P_DATA_TF_PDU_RCV 9 00079 #define A_RELEASE_REQ 10 00080 #define A_RELEASE_RQ_PDU_RCV 11 00081 #define A_RELEASE_RP_PDU_RCV 12 00082 #define A_RELEASE_RESP 13 00083 #define A_ABORT_REQ 14 00084 #define A_ABORT_PDU_RCV 15 00085 #define TRANS_CONN_CLOSED 16 00086 #define ARTIM_TIMER_EXPIRED 17 00087 #define INVALID_PDU 18 00088 #define DUL_NUMBER_OF_EVENTS 19 00089 00090 #define NOSTATE -1 00091 #define STATE1 1 00092 #define STATE2 2 00093 #define STATE3 3 00094 #define STATE4 4 00095 #define STATE5 5 00096 #define STATE6 6 00097 #define STATE7 7 00098 #define STATE8 8 00099 #define STATE9 9 00100 #define STATE10 10 00101 #define STATE11 11 00102 #define STATE12 12 00103 #define STATE13 13 00104 #define DUL_NUMBER_OF_STATES 13 00105 00106 typedef enum { 00107 AE_1, AE_2, AE_3, AE_4, AE_5, AE_6, AE_7, AE_8, 00108 DT_1, DT_2, 00109 AA_1, AA_2, AA_2T, AA_3, AA_4, AA_5, AA_6, AA_7, AA_8, 00110 AR_1, AR_2, AR_3, AR_4, AR_5, AR_6, AR_7, AR_8, AR_9, AR_10, 00111 NOACTION 00112 } DUL_FSM_ACTION; 00113 00114 typedef struct { 00115 int event; 00116 const char *eventName; 00117 } FSM_Event_Description; 00118 00119 typedef struct { 00120 DUL_FSM_ACTION action; 00121 OFCondition (*actionFunction)(PRIVATE_NETWORKKEY **network, 00122 PRIVATE_ASSOCIATIONKEY **association, 00123 int nextState, void *params); 00124 char actionName[64]; 00125 } FSM_FUNCTION; 00126 00127 typedef struct { 00128 int event; 00129 int state; 00130 DUL_FSM_ACTION action; 00131 int nextState; 00132 char eventName[64]; 00133 char actionName[64]; 00134 OFCondition (*actionFunction)(PRIVATE_NETWORKKEY **network, 00135 PRIVATE_ASSOCIATIONKEY **association, 00136 int nextState, void *params); 00137 00138 } FSM_ENTRY; 00139 00140 #endif 00141 00142 /* 00143 ** CVS Log 00144 ** $Log: dulfsm.h,v $ 00145 ** Revision 1.6 2010-12-01 08:26:36 joergr 00146 ** Added OFFIS copyright header (beginning with the year 1994). 00147 ** 00148 ** Revision 1.5 2010-10-14 13:19:29 joergr 00149 ** Updated copyright header. Added reference to COPYRIGHT file. 00150 ** 00151 ** Revision 1.4 2005/12/08 15:48:09 meichel 00152 ** Updated Makefiles to correctly install header files 00153 ** 00154 ** Revision 1.3 2001/10/12 10:18:39 meichel 00155 ** Replaced the CONDITION types, constants and functions in the dcmnet module 00156 ** by an OFCondition based implementation which eliminates the global condition 00157 ** stack. This is a major change, caveat emptor! 00158 ** 00159 ** Revision 1.2 1999/03/29 11:20:07 meichel 00160 ** Cleaned up dcmnet code for char* to const char* assignments. 00161 ** 00162 ** Revision 1.1.1.1 1996/03/26 18:38:46 hewett 00163 ** Initial Release. 00164 ** 00165 ** 00166 */ 00167