1a4c2005cc
This cl implements an experimental filesystem maintained in the vm, called dart-devfs. This will allow service protocol users to read and write source files while the vm is running. This is needed for the reload support for flutter. R=turnidge@google.com Review URL: https://codereview.chromium.org/2059883003 .
56 lines
1.6 KiB
C++
56 lines
1.6 KiB
C++
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
#ifndef VM_DEV_FS_H_
|
|
#define VM_DEV_FS_H_
|
|
|
|
#include "vm/globals.h"
|
|
|
|
#include "vm/dart_api_impl.h"
|
|
|
|
namespace dart {
|
|
|
|
class Array;
|
|
class FileSystem;
|
|
class JSONStream;
|
|
class Mutex;
|
|
class ObjectPointerVisitor;
|
|
class RawArray;
|
|
class RawObject;
|
|
class String;
|
|
|
|
|
|
// Manages dart-devfs:// file systems. These file systems are "virtual"
|
|
// and accessed via the service protocol.
|
|
class DevFS {
|
|
public:
|
|
static void Init();
|
|
static void Cleanup();
|
|
|
|
static void ListFileSystems(JSONStream* js);
|
|
static void CreateFileSystem(JSONStream* js, const String& fs_name);
|
|
static void DeleteFileSystem(JSONStream* js, const String& fs_name);
|
|
static void ListFiles(JSONStream* js,
|
|
const String& fs_name);
|
|
static void WriteFiles(JSONStream* js,
|
|
const String& fs_name,
|
|
const Array& files);
|
|
static void WriteFile(JSONStream* js,
|
|
const String& fs_name,
|
|
const String& path,
|
|
const String& file_contents);
|
|
static void ReadFile(JSONStream* js,
|
|
const String& fs_name,
|
|
const String& path);
|
|
|
|
private:
|
|
static Mutex* mutex_;
|
|
static FileSystem* LookupFileSystem(const String& fs_name);
|
|
static FileSystem* LookupFileSystem(const char* fs_name);
|
|
};
|
|
|
|
} // namespace dart
|
|
|
|
#endif // VM_DEV_FS_H_
|