GDCM  2.2.0
gdcmULTransitionTable.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef GDCMULTRANSITIONTABLE_H
19 #define GDCMULTRANSITIONTABLE_H
20 
21 #include "gdcmNetworkStateID.h"
22 #include "gdcmNetworkEvents.h"
23 #include "gdcmULAction.h"
24 
25 #include <cstdlib> // NULL
26 
27 namespace gdcm {
28 class Subject;
29  namespace network{
30 class ULConnection;
31 class ULAction;
32 class ULEvent;
33 
34  //The transition dictates the action that should be taken from the start state to the end state
35  struct Transition {
36  int mEnd;
40  mAction = NULL;
41  }
43  if (mAction != NULL){
44  delete mAction;
45  mAction = NULL;
46  }
47  }
48  Transition(int inEndState, ULAction* inAction){
49  mEnd = inEndState;
50  mAction = inAction;
51  }
52  static Transition* MakeNew(int inEndState, ULAction* inAction){
53  return new Transition(inEndState, inAction);
54  }
55  };
56 
57  //used to define a row in table 9-10 of 3.8 2009
58  //the transition table is events, then state,
59  //then the transition itself (which has the event
60  //and start state implied by their starting locations)
61  //don't need to store the event; that's implicitly defined in the Table itself by location
62  class TableRow{
63  public:
65 
66  //copy constructor for stl additions into the transition table below.
67  };
68 
86 {
87  private:
88  TableRow mTable[cMaxEventID];
89  public:
91 
92  void HandleEvent(Subject*s,ULEvent& inEvent, ULConnection& inConnection,
93  bool& outWaitingForEvent, EEventID& outRaisedEvent) const;
94 
95  void PrintTable() const; //so that the table can be printed and verified against the DICOM standard
96  };
97  }
98 }
99 #endif // GDCMULTRANSITIONTABLE_H

Generated on Wed Jun 13 2012 20:40:37 for GDCM by doxygen 1.8.1
SourceForge.net Logo