| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 2686 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2697 enum CompressionAlgorithm { | 2697 enum CompressionAlgorithm { |
| 2698 kUncompressed, | 2698 kUncompressed, |
| 2699 kBZip2 | 2699 kBZip2 |
| 2700 }; | 2700 }; |
| 2701 | 2701 |
| 2702 const char* data; | 2702 const char* data; |
| 2703 int compressed_size; | 2703 int compressed_size; |
| 2704 int raw_size; | 2704 int raw_size; |
| 2705 }; | 2705 }; |
| 2706 | 2706 |
| 2707 |
| 2708 /** |
| 2709 * A helper class for driving V8 startup data decompression. It is based on |
| 2710 * "CompressedStartupData" API functions from the V8 class. It isn't mandatory |
| 2711 * for an embedder to use this class, instead, API functions can be used |
| 2712 * directly. |
| 2713 * |
| 2714 * For an example of the class usage, see the "shell.cc" sample application. |
| 2715 */ |
| 2716 class V8EXPORT StartupDataDecompressor { |
| 2717 public: |
| 2718 StartupDataDecompressor(); |
| 2719 virtual ~StartupDataDecompressor(); |
| 2720 int Decompress(); |
| 2721 |
| 2722 protected: |
| 2723 virtual int DecompressData(char* raw_data, |
| 2724 int* raw_data_size, |
| 2725 const char* compressed_data, |
| 2726 int compressed_data_size) = 0; |
| 2727 |
| 2728 private: |
| 2729 char** raw_data; |
| 2730 }; |
| 2731 |
| 2707 /** | 2732 /** |
| 2708 * Container class for static utility functions. | 2733 * Container class for static utility functions. |
| 2709 */ | 2734 */ |
| 2710 class V8EXPORT V8 { | 2735 class V8EXPORT V8 { |
| 2711 public: | 2736 public: |
| 2712 /** Set the callback to invoke in case of fatal errors. */ | 2737 /** Set the callback to invoke in case of fatal errors. */ |
| 2713 static void SetFatalErrorHandler(FatalErrorCallback that); | 2738 static void SetFatalErrorHandler(FatalErrorCallback that); |
| 2714 | 2739 |
| 2715 /** | 2740 /** |
| 2716 * Set the callback to invoke to check if code generation from | 2741 * Set the callback to invoke to check if code generation from |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2746 * | 2771 * |
| 2747 * This is how interaction with V8 should look like: | 2772 * This is how interaction with V8 should look like: |
| 2748 * int compressed_data_count = v8::V8::GetCompressedStartupDataCount(); | 2773 * int compressed_data_count = v8::V8::GetCompressedStartupDataCount(); |
| 2749 * v8::StartupData* compressed_data = | 2774 * v8::StartupData* compressed_data = |
| 2750 * new v8::StartupData[compressed_data_count]; | 2775 * new v8::StartupData[compressed_data_count]; |
| 2751 * v8::V8::GetCompressedStartupData(compressed_data); | 2776 * v8::V8::GetCompressedStartupData(compressed_data); |
| 2752 * ... decompress data (compressed_data can be updated in-place) ... | 2777 * ... decompress data (compressed_data can be updated in-place) ... |
| 2753 * v8::V8::SetDecompressedStartupData(compressed_data); | 2778 * v8::V8::SetDecompressedStartupData(compressed_data); |
| 2754 * ... now V8 can be initialized | 2779 * ... now V8 can be initialized |
| 2755 * ... make sure the decompressed data stays valid until V8 shutdown | 2780 * ... make sure the decompressed data stays valid until V8 shutdown |
| 2781 * |
| 2782 * A helper class StartupDataDecompressor is provided. It implements |
| 2783 * the protocol of the interaction described above, and can be used in |
| 2784 * most cases instead of calling these API functions directly. |
| 2756 */ | 2785 */ |
| 2757 static StartupData::CompressionAlgorithm GetCompressedStartupDataAlgorithm(); | 2786 static StartupData::CompressionAlgorithm GetCompressedStartupDataAlgorithm(); |
| 2758 static int GetCompressedStartupDataCount(); | 2787 static int GetCompressedStartupDataCount(); |
| 2759 static void GetCompressedStartupData(StartupData* compressed_data); | 2788 static void GetCompressedStartupData(StartupData* compressed_data); |
| 2760 static void SetDecompressedStartupData(StartupData* decompressed_data); | 2789 static void SetDecompressedStartupData(StartupData* decompressed_data); |
| 2761 | 2790 |
| 2762 /** | 2791 /** |
| 2763 * Adds a message listener. | 2792 * Adds a message listener. |
| 2764 * | 2793 * |
| 2765 * The same message listener can be added more than once and in that | 2794 * The same message listener can be added more than once and in that |
| (...skipping 1349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4115 | 4144 |
| 4116 | 4145 |
| 4117 } // namespace v8 | 4146 } // namespace v8 |
| 4118 | 4147 |
| 4119 | 4148 |
| 4120 #undef V8EXPORT | 4149 #undef V8EXPORT |
| 4121 #undef TYPE_CHECK | 4150 #undef TYPE_CHECK |
| 4122 | 4151 |
| 4123 | 4152 |
| 4124 #endif // V8_H_ | 4153 #endif // V8_H_ |
| OLD | NEW |