Index: runtime/include/dart_tools_api.h |
diff --git a/runtime/include/dart_debugger_api.h b/runtime/include/dart_tools_api.h |
old mode 100755 |
new mode 100644 |
similarity index 80% |
copy from runtime/include/dart_debugger_api.h |
copy to runtime/include/dart_tools_api.h |
index 06efa30d16022222739a9d912dd8beb64c6de401..f2bc2a4f66673b1c357668b582de7a17a5308c75 |
--- a/runtime/include/dart_debugger_api.h |
+++ b/runtime/include/dart_tools_api.h |
@@ -2,11 +2,27 @@ |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
-#ifndef INCLUDE_DART_DEBUGGER_API_H_ |
-#define INCLUDE_DART_DEBUGGER_API_H_ |
+#ifndef INCLUDE_DART_TOOLS_API_H_ |
+#define INCLUDE_DART_TOOLS_API_H_ |
#include "include/dart_api.h" |
+/** \mainpage Dart Tools Embedding API Reference |
+ * |
+ * This reference describes the Dart embedding API for tools. Tools include |
+ * a debugger, service protocol, and timeline. |
+ * |
+ * NOTE: The APIs described in this file are unstable and subject to change. |
+ * |
+ * This reference is generated from the header include/dart_tools_api.h. |
+ */ |
+ |
+ |
+ /* |
+ * ======== |
+ * Debugger |
+ * ======== |
+ */ |
typedef struct _Dart_Breakpoint* Dart_Breakpoint; |
typedef struct _Dart_StackTrace* Dart_StackTrace; |
@@ -477,7 +493,7 @@ DART_EXPORT Dart_Handle Dart_GetLocalVariables( |
* Returns origin class of a function. |
* |
* Requires there to be a current isolate. |
- * |
+ * |
* \return Returns the class id (a handle to an integer) of the class in |
* which \function is defined. Returns a null handle if \function is defined |
* at the top level. Returns an error object otherwise. |
@@ -520,7 +536,7 @@ DART_EXPORT Dart_Handle Dart_ActivationFrameEvaluate( |
* were a static method of that class. |
* If \target is a Library, the expression is evaluated as if it |
* were a top-level function in that library. |
- * |
+ * |
* \return A handle to the computed value, or an error object if |
* the compilation of the expression fails, or if the evaluation throws |
* an error. |
@@ -721,4 +737,154 @@ DART_EXPORT Dart_Isolate Dart_GetIsolate(Dart_IsolateId isolate_id); |
*/ |
DART_EXPORT Dart_IsolateId Dart_GetIsolateId(Dart_Isolate isolate); |
-#endif // INCLUDE_DART_DEBUGGER_API_H_ |
+ |
+/* |
+ * ======= |
+ * Service |
+ * ======= |
+ */ |
+ |
+/** |
+ * A service request callback function. |
+ * |
+ * These callbacks, registered by the embedder, are called when the VM receives |
+ * a service request it can't handle and the service request command name |
+ * matches one of the embedder registered handlers. |
+ * |
+ * \param method The rpc method name. |
+ * \param param_keys Service requests can have key-value pair parameters. The |
+ * keys and values are flattened and stored in arrays. |
+ * \param param_values The values associated with the keys. |
+ * \param num_params The length of the param_keys and param_values arrays. |
+ * \param user_data The user_data pointer registered with this handler. |
+ * |
+ * \return Returns a C string containing a valid JSON object. The returned |
+ * pointer will be freed by the VM by calling free. |
+ */ |
+typedef const char* (*Dart_ServiceRequestCallback)( |
+ const char* method, |
+ const char** param_keys, |
+ const char** param_values, |
+ intptr_t num_params, |
+ void* user_data); |
+ |
+ |
+/** |
+ * Register a Dart_ServiceRequestCallback to be called to handle |
+ * requests for the named rpc on a specific isolate. The callback will |
+ * be invoked with the current isolate set to the request target. |
+ * |
+ * \param method The name of the method that this callback is responsible for. |
+ * \param callback The callback to invoke. |
+ * \param user_data The user data passed to the callback. |
+ * |
+ * NOTE: If multiple callbacks with the same name are registered, only |
+ * the last callback registered will be remembered. |
+ */ |
+DART_EXPORT void Dart_RegisterIsolateServiceRequestCallback( |
+ const char* method, |
+ Dart_ServiceRequestCallback callback, |
+ void* user_data); |
+ |
+ |
+/** |
+ * Register a Dart_ServiceRequestCallback to be called to handle |
+ * requests for the named rpc. The callback will be invoked without a |
+ * current isolate. |
+ * |
+ * \param method The name of the command that this callback is responsible for. |
+ * \param callback The callback to invoke. |
+ * \param user_data The user data passed to the callback. |
+ * |
+ * NOTE: If multiple callbacks with the same name are registered, only |
+ * the last callback registered will be remembered. |
+ */ |
+DART_EXPORT void Dart_RegisterRootServiceRequestCallback( |
+ const char* method, |
+ Dart_ServiceRequestCallback callback, |
+ void* user_data); |
+ |
+ |
+/* |
+ * ======== |
+ * Timeline |
+ * ======== |
+ */ |
+ |
+/** |
+ * Add a duration timeline event to the embedder stream for the current isolate. |
+ * |
+ * \param label The name of the event. |
+ * \param start_micros The start of the duration (in microseconds) |
+ * \param end_micros The end of the duration (in microseconds) |
+ * |
+ * NOTE: On Posix platforms you should use gettimeofday and on Windows platforms |
+ * you should use GetSystemTimeAsFileTime to get the time values. |
+ */ |
+DART_EXPORT Dart_Handle Dart_TimelineDuration(const char* label, |
+ int64_t start_micros, |
+ int64_t end_micros); |
+ |
+ |
+/** |
+ * Add an instant timeline event to the embedder stream for the current isolate. |
+ * |
+ * \param label The name of event. |
+ * |
+ * NOTE: On Posix platforms this call uses gettimeofday and on Windows platforms |
+ * this call uses GetSystemTimeAsFileTime to get the current time. |
+ */ |
+DART_EXPORT Dart_Handle Dart_TimelineInstant(const char* label); |
+ |
+ |
+/** |
+ * Adds an asynchronous begin timeline event to the embedder stream for the |
+ * current isolate. |
+ * |
+ * \param label The name of event. |
+ * |
+ * \return Returns an asynchronous id that must be passed to |
+ * Dart_TimelineAsyncInstant and Dart_TimelineAsyncEnd. If the asynchronous |
+ * id is less than 0 the event was not added to the timeline and subsequent |
+ * calls to Dart_TimelineAsyncInstant and Dart_TimelineAsyncEnd will become |
+ * no-ops. |
+ * |
+ * NOTE: On Posix platforms this call uses gettimeofday and on Windows platforms |
+ * this call uses GetSystemTimeAsFileTime to get the current time. |
+ */ |
+DART_EXPORT Dart_Handle Dart_TimelineAsyncBegin(const char* label, |
+ int64_t* async_id); |
+ |
+ |
+/** |
+ * Adds an asynchronous instant timeline event to the embedder stream for the |
+ * current isolate. |
+ * |
+ * \param label The name of event. |
+ * |
+ * \return Returns an asynchronous id that must be passed to |
+ * Dart_TimelineAsyncInstant and Dart_TimelineAsyncEnd. |
+ * |
+ * NOTE: On Posix platforms this call uses gettimeofday and on Windows platforms |
+ * this call uses GetSystemTimeAsFileTime to get the current time. |
+ */ |
+DART_EXPORT Dart_Handle Dart_TimelineAsyncInstant(const char* label, |
+ int64_t async_id); |
+ |
+ |
+/** |
+ * Adds an asynchronous end timeline event to the embedder stream for the |
+ * current isolate. |
+ * |
+ * \param label The name of event. |
+ * |
+ * \return Returns an asynchronous id that must be passed to |
+ * Dart_TimelineAsyncInstant and Dart_TimelineAsyncEnd. |
+ * |
+ * NOTE: On Posix platforms this call uses gettimeofday and on Windows platforms |
+ * this call uses GetSystemTimeAsFileTime to get the current time. |
+ */ |
+DART_EXPORT Dart_Handle Dart_TimelineAsyncEnd(const char* label, |
+ int64_t async_id); |
+ |
+#endif // INCLUDE_DART_TOOLS_API_H_ |