1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_script_XDebugging_idl__
28#define __com_sun_star_script_XDebugging_idl__
29
30#ifndef __com_sun_star_uno_XInterface_idl__
31#include <com/sun/star/uno/XInterface.idl>
32#endif
33
34#ifndef __com_sun_star_script_ContextInformation_idl__
35#include <com/sun/star/script/ContextInformation.idl>
36#endif
37
38
39//=============================================================================
40
41 module com {  module sun {  module star {  module script {
42
43//=============================================================================
44
45// DocMerge from xml: interface com::sun::star::script::XDebugging
46/** makes it possible to set breakpoints in an interpreter.
47	@deprecated
48 */
49published interface XDebugging: com::sun::star::uno::XInterface
50{
51	//-------------------------------------------------------------------------
52	/** returns the source code line where the breakpoint was set.
53
54				<p>The value can differ from the parameter
55				<var>nSourceCodeLine</var> when this is not a valid line to
56				place it.  -1 indicates that the breakpoint cannot be set at
57				this position.
58	 */
59	long setBreakPoint( [in] string aModuleName,
60			 [in] long nSourceCodeLine,
61			 [in] boolean bOn );
62
63	//-------------------------------------------------------------------------
64	/** clears all breakpoints in the module set by "setBreakPoint".
65	 */
66	void clearAllBreakPoints( [in] string aModuleName );
67
68	//-------------------------------------------------------------------------
69	/** Evaluates an expression.
70
71		@returns the value of the expression as string.
72
73		@param CallStackPos	Position in the call stack for which the expression
74					should be evaluated. 0 is the top/actual position in the call
75					in the call stack, 1 the next and so on.
76	 */
77	string eval( [in] string aSourceCode,
78			 [in] short nCallStackPos );
79
80	//-------------------------------------------------------------------------
81	/** Returns the engine's stack trace of the current execute position. Line break is the delimiter.
82	 */
83	sequence<string> getStackTrace();
84
85	//-------------------------------------------------------------------------
86	/** returns more detailed information about a specified stack frame.
87
88		 @param nCallStackPos
89				specifies the position in the call stack for the
90				variables that should be delivered.
91	 */
92	com::sun::star::script::ContextInformation getContextInformation( [in] short nCallStackPos );
93
94	//-------------------------------------------------------------------------
95	/** returns the value of the variable at the given stack position.
96	 */
97	string dumpVariable( [in] string aVariableName,
98			 [in] short nCallStackPos );
99
100	//-------------------------------------------------------------------------
101	/** sets the value of the specified variable within the specified
102		stack frame.
103	 */
104	void setVariable( [in] string aVariableName,
105			 [in] string aValue,
106			 [in] short nCallStackPos );
107
108	//-------------------------------------------------------------------------
109	/** returns whether the given variable exists within the specified stack frame.
110	 */
111	boolean isVariable( [in] string aVariableName,
112			 [in] short nCallStackPos );
113
114	//-------------------------------------------------------------------------
115	/** stops the execution of the interpreter.
116
117		<p>To continue with the execution, call <method>XDebugging::doContinue</method>.
118	 */
119	void stop();
120
121	//-------------------------------------------------------------------------
122	/** executes the next and only the next statement.
123
124		<p>If the next statement is a function call, the function is
125		executed completely.</p>
126	 */
127	void stepOver();
128
129	//-------------------------------------------------------------------------
130	/** executes the next and only the next statement.
131
132		<p>If the next statement is a function call, only the function
133		entered.</p>
134	 */
135	void stepIn();
136
137	//-------------------------------------------------------------------------
138	/** executes the program until the next return from this stack frame.
139	 */
140	void stepOut();
141
142	//-------------------------------------------------------------------------
143	/** continues the program execution.
144	 */
145	void doContinue();
146
147};
148
149//=============================================================================
150
151}; }; }; };
152
153#endif
154