GDCM
2.2.0
|
00001 /*========================================================================= 00002 * 00003 * Copyright Insight Software Consortium 00004 * 00005 * Licensed under the Apache License, Version 2.0 (the "License"); 00006 * you may not use this file except in compliance with the License. 00007 * You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0.txt 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 * 00017 *=========================================================================*/ 00018 #ifndef GDCMULACTIONAR_H 00019 #define GDCMULACTIONAR_H 00020 00021 #include "gdcmULAction.h" 00022 00031 namespace gdcm { 00032 namespace network { 00033 00034 //Send A-RELEASE-RQ-PDU 00035 //Next State: eSta7WaitRelease 00036 class ULActionAR1 : public ULAction { 00037 public: 00038 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00039 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00040 }; 00041 00042 //Issue A-RELEASE indication primitive 00043 //Next State: eSta8WaitLocalRelease 00044 class ULActionAR2 : public ULAction { 00045 public: 00046 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00047 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00048 }; 00049 00050 //Issue A-RELEASE confirmation primitive, and close transport connection 00051 //Next State: eSta1Idle 00052 class ULActionAR3 : public ULAction { 00053 public: 00054 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00055 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00056 }; 00057 00058 //Issue A-RELEASE-RP PDU and start ARTIM timer 00059 //Next State: eSta13AwaitingClose 00060 class ULActionAR4 : public ULAction { 00061 public: 00062 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00063 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00064 }; 00065 00066 //Stop ARTIM timer 00067 //Next State: eSta1Idle 00068 class ULActionAR5 : public ULAction { 00069 public: 00070 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00071 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00072 }; 00073 00074 //Issue P-Data indication 00075 //Next State: eSta7WaitRelease 00076 class ULActionAR6 : public ULAction { 00077 public: 00078 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00079 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00080 }; 00081 00082 //Issue P-DATA-TF PDU 00083 //Next State: eSta8WaitLocalRelease 00084 class ULActionAR7 : public ULAction { 00085 public: 00086 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00087 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00088 }; 00089 00090 //Issue A-RELEASE indication (release collision): 00091 //- If association-requestor, next state is eSta9ReleaseCollisionRqLocal 00092 //- if not, next state is eSta10ReleaseCollisionAc 00093 class ULActionAR8 : public ULAction { 00094 public: 00095 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00096 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00097 }; 00098 00099 //Send A-RELEASE-RP PDU 00100 //Next State: eSta11ReleaseCollisionRq 00101 class ULActionAR9 : public ULAction { 00102 public: 00103 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00104 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00105 }; 00106 00107 //Issue A-RELEASE confirmation primitive 00108 //Next State: eSta12ReleaseCollisionAcLocal 00109 class ULActionAR10 : public ULAction { 00110 public: 00111 EStateID PerformAction(Subject *s, ULEvent& inEvent, ULConnection& inConnection, 00112 bool& outWaitingForEvent, EEventID& outRaisedEvent); 00113 }; 00114 } 00115 } 00116 #endif // GDCMULACTIONAR_H