text: // Copyright 2013 The Flutter 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 FLUTTER_RUNTIME_DART_VM_DATA_H_
  #define FLUTTER_RUNTIME_DART_VM_DATA_H_
  
  #include "flutter/fml/macros.h"
  #include "flutter/runtime/dart_snapshot.h"
  
  namespace flutter {
  
  class DartVMData {
   public:
    static std::shared_ptr<const DartVMData> Create(
        Settings settings,
        fml::RefPtr<DartSnapshot> vm_snapshot,
        fml::RefPtr<DartSnapshot> isolate_snapshot);
  
    ~DartVMData();
  
    const Settings& GetSettings() const;
  
    const DartSnapshot& GetVMSnapshot() const;
  
    fml::RefPtr<const DartSnapshot> GetIsolateSnapshot() const;
  
   private:
    const Settings settings_;
    const fml::RefPtr<const DartSnapshot> vm_snapshot_;
    const fml::RefPtr<const DartSnapshot> isolate_snapshot_;
  
    DartVMData(Settings settings,
               fml::RefPtr<const DartSnapshot> vm_snapshot,
               fml::RefPtr<const DartSnapshot> isolate_snapshot);
  
    FML_DISALLOW_COPY_AND_ASSIGN(DartVMData);
  };
  
  }  // namespace flutter
  
  #endif  // FLUTTER_RUNTIME_DART_VM_DATA_H_
  