OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 2 * Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
3 * for details. All rights reserved. Use of this source code is governed by a | 3 * for details. All rights reserved. Use of this source code is governed by a |
4 * BSD-style license that can be found in the LICENSE file. | 4 * BSD-style license that can be found in the LICENSE file. |
5 */ | 5 */ |
6 | 6 |
7 #ifndef INCLUDE_DART_API_H_ | 7 #ifndef INCLUDE_DART_API_H_ |
8 #define INCLUDE_DART_API_H_ | 8 #define INCLUDE_DART_API_H_ |
9 | 9 |
10 /** \mainpage Dart Embedding API Reference | 10 /** \mainpage Dart Embedding API Reference |
(...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 * archive that is stored in a Uint8List. | 777 * archive that is stored in a Uint8List. |
778 * | 778 * |
779 * If the embedder has no vmservice isolate assets, the callback can be NULL. | 779 * If the embedder has no vmservice isolate assets, the callback can be NULL. |
780 * | 780 * |
781 * \return The embedder must return a handle to a Uint8List containing an | 781 * \return The embedder must return a handle to a Uint8List containing an |
782 * uncompressed tar archive or null. | 782 * uncompressed tar archive or null. |
783 */ | 783 */ |
784 typedef Dart_Handle (*Dart_GetVMServiceAssetsArchive)(); | 784 typedef Dart_Handle (*Dart_GetVMServiceAssetsArchive)(); |
785 | 785 |
786 /** | 786 /** |
787 * Initializes the VM. | 787 * The current version of the Dart_InitializeFlags. Should be incremented every |
| 788 * time Dart_InitializeFlags changes in a binary incompatible way. |
| 789 */ |
| 790 #define DART_INITIALIZE_PARAMS_CURRENT_VERSION (0x00000001) |
| 791 |
| 792 /** |
| 793 * Describes how to initialize the VM. Used with Dart_Initialize. |
788 * | 794 * |
| 795 * \param version Identifies the version of the struct used by the client. |
| 796 * should be initialized to DART_INITIALIZE_PARAMS_CURRENT_VERSION. |
789 * \param vm_isolate_snapshot A buffer containing a snapshot of the VM isolate | 797 * \param vm_isolate_snapshot A buffer containing a snapshot of the VM isolate |
790 * or NULL if no snapshot is provided. | 798 * or NULL if no snapshot is provided. |
791 * \param instructions_snapshot A buffer containing a snapshot of precompiled | 799 * \param instructions_snapshot A buffer containing a snapshot of precompiled |
792 * instructions, or NULL if no snapshot is provided. | 800 * instructions, or NULL if no snapshot is provided. |
793 * \param create A function to be called during isolate creation. | 801 * \param create A function to be called during isolate creation. |
794 * See Dart_IsolateCreateCallback. | 802 * See Dart_IsolateCreateCallback. |
795 * \param interrupt This parameter has been DEPRECATED. | |
796 * \param unhandled_exception This parameter has been DEPRECATED. | |
797 * \param shutdown A function to be called when an isolate is shutdown. | 803 * \param shutdown A function to be called when an isolate is shutdown. |
798 * See Dart_IsolateShutdownCallback. | 804 * See Dart_IsolateShutdownCallback. |
799 * | |
800 * \param get_service_assets A function to be called by the service isolate when | 805 * \param get_service_assets A function to be called by the service isolate when |
801 * it requires the vmservice assets archive. | 806 * it requires the vmservice assets archive. |
802 * See Dart_GetVMServiceAssetsArchive. | 807 * See Dart_GetVMServiceAssetsArchive. |
| 808 */ |
| 809 typedef struct { |
| 810 int32_t version; |
| 811 const uint8_t* vm_isolate_snapshot; |
| 812 const uint8_t* instructions_snapshot; |
| 813 const uint8_t* data_snapshot; |
| 814 Dart_IsolateCreateCallback create; |
| 815 Dart_IsolateShutdownCallback shutdown; |
| 816 Dart_ThreadExitCallback thread_exit; |
| 817 Dart_FileOpenCallback file_open; |
| 818 Dart_FileReadCallback file_read; |
| 819 Dart_FileWriteCallback file_write; |
| 820 Dart_FileCloseCallback file_close; |
| 821 Dart_EntropySource entropy_source; |
| 822 Dart_GetVMServiceAssetsArchive get_service_assets; |
| 823 } Dart_InitializeParams; |
| 824 |
| 825 /** |
| 826 * Initializes the VM. |
| 827 * |
| 828 * \param flags A struct containing initialization information. The version |
| 829 * field of the struct must be DART_INITIALIZE_PARAMS_CURRENT_VERSION. |
803 * | 830 * |
804 * \return NULL if initialization is successful. Returns an error message | 831 * \return NULL if initialization is successful. Returns an error message |
805 * otherwise. The caller is responsible for freeing the error message. | 832 * otherwise. The caller is responsible for freeing the error message. |
806 */ | 833 */ |
807 DART_EXPORT char* Dart_Initialize( | 834 DART_EXPORT char* Dart_Initialize(Dart_InitializeParams* params); |
808 const uint8_t* vm_isolate_snapshot, | |
809 const uint8_t* instructions_snapshot, | |
810 const uint8_t* data_snapshot, | |
811 Dart_IsolateCreateCallback create, | |
812 Dart_IsolateInterruptCallback interrupt, | |
813 Dart_IsolateUnhandledExceptionCallback unhandled_exception, | |
814 Dart_IsolateShutdownCallback shutdown, | |
815 Dart_ThreadExitCallback thread_exit, | |
816 Dart_FileOpenCallback file_open, | |
817 Dart_FileReadCallback file_read, | |
818 Dart_FileWriteCallback file_write, | |
819 Dart_FileCloseCallback file_close, | |
820 Dart_EntropySource entropy_source, | |
821 Dart_GetVMServiceAssetsArchive get_service_assets); | |
822 | 835 |
823 /** | 836 /** |
824 * Cleanup state in the VM before process termination. | 837 * Cleanup state in the VM before process termination. |
825 * | 838 * |
826 * \return NULL if cleanup is successful. Returns an error message otherwise. | 839 * \return NULL if cleanup is successful. Returns an error message otherwise. |
827 * The caller is responsible for freeing the error message. | 840 * The caller is responsible for freeing the error message. |
828 */ | 841 */ |
829 DART_EXPORT char* Dart_Cleanup(); | 842 DART_EXPORT char* Dart_Cleanup(); |
830 | 843 |
831 /** | 844 /** |
(...skipping 2329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3161 /** | 3174 /** |
3162 * Returns whether the VM was initialized with a precompiled snapshot. Only | 3175 * Returns whether the VM was initialized with a precompiled snapshot. Only |
3163 * valid after Dart_Initialize. | 3176 * valid after Dart_Initialize. |
3164 * DEPRECATED. This is currently used to disable Platform.executable and | 3177 * DEPRECATED. This is currently used to disable Platform.executable and |
3165 * Platform.resolvedExecutable under precompilation to prevent process | 3178 * Platform.resolvedExecutable under precompilation to prevent process |
3166 * spawning tests from becoming fork-bombs. | 3179 * spawning tests from becoming fork-bombs. |
3167 */ | 3180 */ |
3168 DART_EXPORT bool Dart_IsRunningPrecompiledCode(); | 3181 DART_EXPORT bool Dart_IsRunningPrecompiledCode(); |
3169 | 3182 |
3170 #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */ | 3183 #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */ |
OLD | NEW |