-
Notifications
You must be signed in to change notification settings - Fork 0
/
DSBlockSubstructure.h
99 lines (81 loc) · 4.22 KB
/
DSBlockSubstructure.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#ifndef _DSBLOCKSUBSTRUCTURE_H_
#define _DSBLOCKSUBSTRUCTURE_H_
#include "DSBasicTypes.h"
#include "DSNamedObject.h"
#include "DSBlockComponent.h"
#include "DSChannelComponent.h"
#include "DSChannel2ChannelConnectionComponent.h"
#include "DSPipe2PipeBindingComponent.h"
#include "DSSortComponent.h"
#include "DSSignalComponent.h"
#include "DSSignalslistComponent.h"
#include "DSProcedureComponent.h"
#include "DSMachineServiceComponent.h"
#include "DSPipeComponent.h"
#include "DSSensorComponent.h"
/************************************************************************
* Classname: DSBlockSubstructure
* Purpose: Gesamtsystem einer SDL-Spezifikation
* Z100: Seite 28
************************************************************************/
class DSBlockSubstructure : public DSNamedObject,
public DSBlockComponent,
public DSChannelComponent,
public DSChannel2ChannelConnectionComponent,
public DSSortComponent,
public DSSignalComponent,
public DSSignalslistComponent,
public DSProcedureComponent,
public DSMachineServiceComponent,
public DSPipeComponent,
public DSPipe2PipeBindingComponent,
public DSSensorComponent
{
public:
DSBlockSubstructure(DSObject* = NULL,
DSString * = NULL);
DSBlockSubstructure(DSObject*,
DSString&);
DSBlockSubstructure(DSObject*,
const char *);
virtual ~DSBlockSubstructure(void);
DSObject *New(DSObject * = NULL) const; // virtueller Konstruktor
DSObject *Clone(DSObject * = NULL,
DSObject * = NULL) const;
// erzeugt eine identische
// Kopie dieses Objekts
DSBoolean HasAction(DSActionTag, DSBoolean) const;
DSBoolean HasDelayedOutputs(DSBoolean) const;
DSBoolean HasAsteriskStates(DSBoolean) const;
DSBoolean HasTimer(DSBoolean) const;
DSBoolean HasSensors(DSBoolean) const;
DSBoolean HasComplexProcedures(DSBoolean) const;
DSBoolean HasExternalSynonyms(DSBoolean) const;
DSCardinal GetNumOfProcesses(void) const;
void CheckForComplexProcedures(DSBoolean);
/*************************************************************/
/* 'State *' durch neue Referenzlisten in DSState aufloesen: */
/*************************************************************/
DSResult DissolveAsteriskStates(void);
/*************************************************************/
/* 'Nextstate -' aufloesen: */
/*************************************************************/
DSResult DissolveNextStateDash(void);
/*************************************************************/
/* Decision-Konstrukte aufloesen: */
/*************************************************************/
DSResult DissolveDecisions(DSBoolean = DS_TRUE);
// true = alle
// false = nur decision any
/*************************************************************/
/* Liste aller externen Synonyme: */
/*************************************************************/
DSResult GetExternalSynonyms(DSSynonymRefList *) const;
/***********************************************************/
/* Die folgenden zwei Funktionen dienen zum systematischen */
/* Durchlaufen und Verarbeiten der Datenstruktur: */
/***********************************************************/
virtual DSResult Write(DSWriter *, DSCardinal = 0) const;
virtual DSResult Run(DSWriter*, DSType, DSCardinal = 0) const;
};
#endif