forked from ChristophKirst/SimKernel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsim_signals.cpp
39 lines (33 loc) · 1.08 KB
/
sim_signals.cpp
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
/***************************************************************************
sim_signals.cpp - signals for messaging and error system
Christoph Kirst
Max Planck Institue for Dynamics and Self-Organisation Göttingen
HU Berlin, BCCN Göttingen & Berlin (2008)
****************************************************************************/
#include "sim_signals.h"
bool is_io_signal(const int& sig)
{
return (sig == int(Message) || sig == int(Warning)
|| sig == int(Abort) || sig == int(Exit));
};
bool is_error_signal(const int& sig)
{
return (sig == Warning || sig == Abort || sig == Exit);
};
bool is_throw_signal(const int& sig)
{
return (sig == Abort || sig == Exit);
};
bool is_io_output_signal(const int& sig)
{
return ( sig == AllOutput || sig == NoMessage || sig == NoWarning
|| sig == NoAbort || sig == NoExit || sig == NoOutput);
};
SimSignal to_output_signal(const SimSignal& sig)
{
if (sig == Success) return AllOutput;
int s = sig;
while (!is_io_output_signal(s)) s--;
return SimSignal(s);
};