blob: 75032bda8f0c663a61947b5f7de8c56b183f1b02 [file] [log] [blame]
// 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_