Package: IVdmExecution

IVdmExecution

Coverage

1: /*
2: * #%~
3: * org.overture.ide.debug
4: * %%
5: * Copyright (C) 2008 - 2014 Overture
6: * %%
7: * This program is free software: you can redistribute it and/or modify
8: * it under the terms of the GNU General Public License as
9: * published by the Free Software Foundation, either version 3 of the
10: * License, or (at your option) any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public
18: * License along with this program. If not, see
19: * <http://www.gnu.org/licenses/gpl-3.0.html>.
20: * #~%
21: */
22: package org.overture.ide.debug.core.model;
23:
24: import org.eclipse.debug.core.DebugException;
25:
26: /**
27: * The IVdmExecution interface is used to signal that a certain thread or debug target should perform an action which is
28: * related to a specific state change but not change the state
29: *
30: * @author kela
31: */
32: public interface IVdmExecution
33: {
34:         /**
35:          * Resume the given thread
36:          *
37:          * @param source
38:          * the source who requested this change to occur. This can be used to check if a cycle is occurring.
39:          * @throws DebugException
40:          */
41:         void doResume(Object source) throws DebugException;
42:
43:         /**
44:          * Suspend the given thread
45:          *
46:          * @param source
47:          * the source who requested this change to occur. This can be used to check if a cycle is occurring.
48:          * @throws DebugException
49:          */
50:         void doSuspend(Object source) throws DebugException;
51:
52:         /**
53:          * Step into in the given thread
54:          *
55:          * @param source
56:          * the source who requested this change to occur. This can be used to check if a cycle is occurring.
57:          * @throws DebugException
58:          */
59:         void doStepInto(Object source) throws DebugException;
60:
61:         /**
62:          * Step over in the given thread
63:          *
64:          * @param source
65:          * the source who requested this change to occur. This can be used to check if a cycle is occurring.
66:          * @throws DebugException
67:          */
68:         void doStepOver(Object source) throws DebugException;
69:
70:         /**
71:          * Step return in the given thread
72:          *
73:          * @param source
74:          * the source who requested this change to occur. This can be used to check if a cycle is occurring.
75:          * @throws DebugException
76:          */
77:         void doStepReturn(Object source) throws DebugException;
78:
79:         /**
80:          * Terminate the given thread
81:          *
82:          * @param source
83:          * the source who requested this change to occur. This can be used to check if a cycle is occurring.
84:          * @throws DebugException
85:          */
86:         void doTerminate(Object source) throws DebugException;
87:
88:         /**
89:          * Handle pre suspend processing
90:          *
91:          * @param source
92:          * the source who requested this change to occur. This can be used to check if a cycle is occurring.
93:          * @throws DebugException
94:          */
95:         void doPreSuspendRequest(Object source) throws DebugException;
96:
97:         /**
98:          * Sets the given thread to deadlocked
99:          *
100:          * @param source
101:          * the source who requested this change to occur. This can be used to check if a cycle is occurring.
102:          * @throws DebugException
103:          */
104:         void markDeadlocked(Object source) throws DebugException;
105: }