Commit | Line | Data |
---|---|---|
970ed795 | 1 | /////////////////////////////////////////////////////////////////////////////// |
3abe9331 | 2 | // Copyright (c) 2000-2015 Ericsson Telecom AB |
970ed795 EL |
3 | // All rights reserved. This program and the accompanying materials |
4 | // are made available under the terms of the Eclipse Public License v1.0 | |
5 | // which accompanies this distribution, and is available at | |
6 | // http://www.eclipse.org/legal/epl-v10.html | |
7 | /////////////////////////////////////////////////////////////////////////////// | |
8 | /* state machine of port connections as seen by the MC */ | |
9 | ||
10 | digraph state_mach_conn_mc { | |
11 | // states | |
12 | node [fontsize=16]; | |
13 | // start state (invisible) | |
14 | START [style=invis]; | |
15 | ||
16 | // durable states | |
17 | node[shape=box,style="filled,rounded"]; | |
18 | IDLE; | |
19 | CONNECTED; | |
20 | ||
21 | // transient states | |
22 | node[shape=box,style=rounded]; | |
23 | LISTENING; | |
24 | CONNECTING; | |
25 | DISCONNECTING; | |
26 | ||
27 | // edges | |
28 | edge [fontsize=12]; | |
29 | START -> IDLE [arrowtail=odot]; | |
30 | ||
31 | // state transitions for connect() operation | |
32 | IDLE -> LISTENING [label="CONNECT_REQ/\nCONNECT_LISTEN"]; | |
33 | IDLE -> CONNECTING [label="CONNECT_REQ/\nCONNECT"]; | |
34 | LISTENING -> CONNECTING [label="CONNECT_LISTEN_ACK/\nCONNECT"]; | |
35 | CONNECTING -> CONNECTED [label="CONNECTED/\nCONNECT_ACK"]; | |
36 | CONNECTED -> CONNECTED [label="CONNECT_REQ/\nCONNECT_ACK"]; | |
37 | LISTENING -> LISTENING [label="CONNECT_REQ/\n-"]; | |
38 | CONNECTING -> CONNECTING [label="CONNECT_REQ/\n-"]; | |
39 | DISCONNECTING -> DISCONNECTING [label="CONNECT_REQ/\nERROR"]; | |
40 | ||
41 | // state transitions for disconnect() operation | |
42 | CONNECTED -> DISCONNECTING [label="DISCONNECT_REQ/\nDISCONNECT"]; | |
43 | DISCONNECTING -> IDLE [label="DISCONNECTED or\ncomponent terminates/\nDISCONNECT_ACK"]; | |
44 | IDLE -> IDLE [label="DISCONNECT_REQ/\nDISCONNECT_ACK"]; | |
45 | LISTENING -> LISTENING [label="DISCONNECT_REQ/\nERROR"]; | |
46 | CONNECTING -> CONNECTING [label="DISCONNECT_REQ/\nERROR"]; | |
47 | DISCONNECTING -> DISCONNECTING [label="DISCONNECT_REQ/\n-"]; | |
48 | ||
49 | // handling of connection-related errors | |
50 | edge [fontsize=12,style=dashed]; | |
51 | LISTENING -> IDLE [label="CONNECT_ERROR or\ncomponent terminates/\nERROR"]; | |
52 | CONNECTING -> IDLE [label="CONNECT_ERROR or\ncomponent terminates/\n[DISCONNECT,] ERROR"]; | |
53 | CONNECTED -> IDLE [label="DISCONNECTED or\ncomponent terminates/\n-"]; | |
54 | } |