dcmnet/libsrc/dulfsm.h

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 


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1