Package: IDbgpFeatureCommands

IDbgpFeatureCommands

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.dbgp.commands;
23:
24: import org.overture.ide.debug.core.dbgp.IDbgpFeature;
25: import org.overture.ide.debug.core.dbgp.exceptions.DbgpException;
26:
27: public interface IDbgpFeatureCommands
28: {
29:         // These features must be available
30:
31:         // get [0|1]
32:         final String LANGUAGE_SUPPORTS_THREADS = "language_supports_threads"; //$NON-NLS-1$
33:
34:         // get {eg. PHP, Python, Perl}
35:         final String LANGUAGE_NAME = "language_name"; //$NON-NLS-1$
36:
37:         // get {version string}
38:         final String LANGUAGE_VERSION = "language_version"; //$NON-NLS-1$
39:
40:         // get current encoding in use by the debugger session
41:         final String ENCODING = "encoding"; //$NON-NLS-1$
42:
43:         // get {for now, always 1}
44:         final String PROTOCOL_VERSION = "protocol_version"; //$NON-NLS-1$
45:
46:         // get {for commands such as break}
47:         final String SUPPORTS_ASYNC = "supports_async"; //$NON-NLS-1$
48:
49:         // get optional, allows to turn off the default base64 encoding of data.
50:         // This should only be used for development and debugging of the debugger
51:         // engines themselves, and not for general use. If implemented the value
52:         // 'base64' must be supported to turn back on regular encoding. the value
53:         // 'none' means no encoding is in use. all elements that use encoding must
54:         // include an encoding attribute.
55:         final String DATA_ENCODING = "data_encoding"; //$NON-NLS-1$
56:
57:         // get some engines may support more than one language. This feature returns
58:         // a string which is a comma separated list of supported languages. If the
59:         // engine does not provide this feature, then it is assumed that the engine
60:         // only supports the language defined in the feature language_name. One
61:         // example of this is an XSLT debugger engine which supports XSLT, XML, HTML
62:         // and XHTML. An IDE may need this information to to know what types of
63:         // breakpoints an engine will accept.
64:         final String BREAKPOINT_LANGUAGES = "breakpoint_languages"; //$NON-NLS-1$
65:         /**
66:          * returns a space separated list with all the breakpoint types that are supported. See 7.6 breakpoints for a list
67:          * of the 6 defined breakpoint types.
68:          */
69:         final String BREAKPOINT_TYPES = "breakpoint_types"; //$NON-NLS-1$
70:
71:         // get|set {0|1}
72:         final String MULTIPLE_SESSIONS = "multiple_sessions"; //$NON-NLS-1$
73:
74:         // get|set max number of array or object children to initially retrieve
75:         final String MAX_CHILDREN = "max_children"; //$NON-NLS-1$
76:
77:         // get|set max amount of variable data to initially retrieve.
78:         final String MAX_DATA = "max_data"; //$NON-NLS-1$
79:
80:         // get|set maximum depth that the debugger engine may return when sending
81:         // arrays, hashs or object structures to the IDE.
82:         final String MAX_DEPTH = "max_depth"; //$NON-NLS-1$
83:
84:         // Optional features
85:
86:         // get [0|1] This feature lets an IDE know that there is benefit to
87:         // continuing interaction during the STOPPING state (sect. 7.1).
88:         final String SUPPORTS_POSTMORTEN = "supports_postmortem"; //$NON-NLS-1$
89:
90:         // get|set [0|1] This feature can get set by the IDE if it wants to have
91:         // more detailed internal information on properties (eg. private members of
92:         // classes, etc.) Zero means that hidden members are not shown to the IDE.
93:         final String SHOW_HIDDEN = "show_hidden"; //$NON-NLS-1$
94:
95:         // get|set [0|1] See section 8.5
96:         final String NOTIFY_OK = "notify_ok"; //$NON-NLS-1$
97:
98:         IDbgpFeature getFeature(String featureName) throws DbgpException;
99:
100:         boolean setFeature(String featureName, String featureValue)
101:                         throws DbgpException;
102: }