Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1239)

Side by Side Diff: runtime/include/dart_api.h

Issue 8588040: Add a mid-sized integration test for the Dart Embedding Api which (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/custom_isolate_test.cc » ('j') | runtime/vm/custom_isolate_test.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef INCLUDE_DART_API_H_ 5 #ifndef INCLUDE_DART_API_H_
6 #define INCLUDE_DART_API_H_ 6 #define INCLUDE_DART_API_H_
7 7
8 /** \mainpage Dart Embedding API Reference 8 /** \mainpage Dart Embedding API Reference
9 * 9 *
10 * Dart is a class-based programming language for creating structured 10 * Dart is a class-based programming language for creating structured
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 */ 383 */
384 typedef bool (*Dart_PostMessageCallback)(Dart_Isolate dest_isolate, 384 typedef bool (*Dart_PostMessageCallback)(Dart_Isolate dest_isolate,
385 Dart_Port dest_port, 385 Dart_Port dest_port,
386 Dart_Port reply_port, 386 Dart_Port reply_port,
387 Dart_Message message); 387 Dart_Message message);
388 // TODO(turnidge): Add a Dart_ReleaseMessage to hide allocation details. 388 // TODO(turnidge): Add a Dart_ReleaseMessage to hide allocation details.
389 389
390 const Dart_Port kCloseAllPorts = 0; 390 const Dart_Port kCloseAllPorts = 0;
391 391
392 /** 392 /**
393 * A create port callback.
394 *
395 * This callback allows the embedder to receive notification when a
396 * port is created.
397 */
398 typedef void (*Dart_CreatePortCallback)(Dart_Isolate isolate,
399 Dart_Port port);
400
401 /**
393 * A close port callback. 402 * A close port callback.
394 * 403 *
395 * This callback allows the embedder to receive notification when a 404 * This callback allows the embedder to receive notification when a
396 * port is closed. The constant 'kCloseAllPorts' is passed as the 405 * port is closed. The constant 'kCloseAllPorts' is passed as the
397 * 'port' parameter when all active ports are being closed at once. 406 * 'port' parameter when all active ports are being closed at once.
398 */ 407 */
399 typedef void (*Dart_ClosePortCallback)(Dart_Isolate isolate, 408 typedef void (*Dart_ClosePortCallback)(Dart_Isolate isolate,
400 Dart_Port port); 409 Dart_Port port);
401 410
402 /** 411 /**
403 * Allows embedders to provide an alternative mechanism for sending 412 * Allows embedders to provide an alternative mechanism for sending
404 * inter-isolate messages. This setting only applies to the current 413 * inter-isolate messages. This setting only applies to the current
405 * isolate. 414 * isolate.
406 * 415 *
407 * Most embedders will only call this function once, before isolate 416 * Most embedders will only call this function once, before isolate
408 * execution begins. If this function is called after isolate 417 * execution begins. If this function is called after isolate
409 * execution begins, the embedder is responsible for threading issues. 418 * execution begins, the embedder is responsible for threading issues.
410 */ 419 */
411 DART_EXPORT void Dart_SetMessageCallbacks( 420 DART_EXPORT void Dart_SetMessageCallbacks(
421 Dart_CreatePortCallback create_port_callback,
412 Dart_PostMessageCallback post_message_callback, 422 Dart_PostMessageCallback post_message_callback,
413 Dart_ClosePortCallback close_port_callback); 423 Dart_ClosePortCallback close_port_callback);
414 // TODO(turnidge): Consider moving this to isolate creation so that it 424 // TODO(turnidge): Consider moving this to isolate creation so that it
415 // is impossible to mess up. 425 // is impossible to mess up.
416 426
417 /** 427 /**
418 * Handles a message on the current isolate. 428 * Handles a message on the current isolate.
419 * 429 *
420 * May generate an unhandled exception error. 430 * May generate an unhandled exception error.
421 * 431 *
(...skipping 16 matching lines...) Expand all
438 * 448 *
439 * This function waits for incoming messages for the current 449 * This function waits for incoming messages for the current
440 * isolate. As new messages arrive, they are handled using 450 * isolate. As new messages arrive, they are handled using
441 * Dart_HandleMessage. The routine exits when all ports to the 451 * Dart_HandleMessage. The routine exits when all ports to the
442 * current isolate are closed. 452 * current isolate are closed.
443 */ 453 */
444 DART_EXPORT Dart_Handle Dart_RunLoop(); 454 DART_EXPORT Dart_Handle Dart_RunLoop();
445 // TODO(turnidge): Should this be removed from the public api? 455 // TODO(turnidge): Should this be removed from the public api?
446 456
447 /** 457 /**
458 * Creates a Dart_Port and associates it with the current isolate.
459 */
460 DART_EXPORT Dart_Port Dart_CreatePort();
461
462 /**
463 * Does the current isolate have active ports?
464 */
465 DART_EXPORT bool Dart_IsolateHasActivePorts();
466
467 /**
448 * Posts a message for some isolate. The message is built from a raw 468 * Posts a message for some isolate. The message is built from a raw
449 * array. 469 * array.
450 * 470 *
451 * \param port The destination port. 471 * \param port The destination port.
452 * \param length The length of the data array. 472 * \param length The length of the data array.
453 * \param data A data array to be sent in the message. 473 * \param data A data array to be sent in the message.
454 * 474 *
455 * \return True if the message was posted. 475 * \return True if the message was posted.
456 */ 476 */
457 DART_EXPORT bool Dart_PostIntArray(Dart_Port port, 477 DART_EXPORT bool Dart_PostIntArray(Dart_Port port,
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after
1180 1200
1181 // --- Profiling support ---- 1201 // --- Profiling support ----
1182 1202
1183 // External pprof support for gathering and dumping symbolic 1203 // External pprof support for gathering and dumping symbolic
1184 // information that can be used for better profile reports for 1204 // information that can be used for better profile reports for
1185 // dynamically generated code. 1205 // dynamically generated code.
1186 DART_EXPORT void Dart_InitPprofSupport(); 1206 DART_EXPORT void Dart_InitPprofSupport();
1187 DART_EXPORT void Dart_GetPprofSymbolInfo(void** buffer, int* buffer_size); 1207 DART_EXPORT void Dart_GetPprofSymbolInfo(void** buffer, int* buffer_size);
1188 1208
1189 #endif // INCLUDE_DART_API_H_ 1209 #endif // INCLUDE_DART_API_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/custom_isolate_test.cc » ('j') | runtime/vm/custom_isolate_test.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698