| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SKY_TOOLS_SKY_SNAPSHOT_SCOPE_H_ |
| #define SKY_TOOLS_SKY_SNAPSHOT_SCOPE_H_ |
| |
| #include "base/basictypes.h" |
| #include "base/logging.h" |
| #include "dart/runtime/include/dart_api.h" |
| |
| class DartIsolateScope { |
| public: |
| explicit DartIsolateScope(Dart_Isolate isolate) { |
| CHECK(!Dart_CurrentIsolate()); |
| Dart_EnterIsolate(isolate); |
| } |
| ~DartIsolateScope() { Dart_ExitIsolate(); } |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(DartIsolateScope); |
| }; |
| |
| class DartApiScope { |
| public: |
| DartApiScope() { Dart_EnterScope(); } |
| ~DartApiScope() { Dart_ExitScope(); } |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(DartApiScope); |
| }; |
| |
| #endif // SKY_TOOLS_SKY_SNAPSHOT_SCOPE_H_ |