directory_asset_bundle.h 1.1 KB
Newer Older
1 2 3 4 5 6 7
// Copyright 2016 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 FLUTTER_ASSETS_DIRECTORY_ASSET_BUNDLE_H_
#define FLUTTER_ASSETS_DIRECTORY_ASSET_BUNDLE_H_

8 9 10 11 12
#include <string>
#include <vector>

#include "flutter/assets/asset_provider.h"
#include "lib/fxl/files/unique_fd.h"
13
#include "lib/fxl/macros.h"
14
#include "lib/fxl/memory/ref_counted.h"
15 16 17

namespace blink {

18 19
class DirectoryAssetBundle
    : public AssetProvider {
20
 public:
21 22 23 24
  explicit DirectoryAssetBundle(std::string directory);
  // Expects fd to be valid, otherwise the file descriptor is ignored.
  explicit DirectoryAssetBundle(fxl::UniqueFD fd);
  virtual ~DirectoryAssetBundle();
25

26
  virtual bool GetAsBuffer(const std::string& asset_name, std::vector<uint8_t>* data);
27

28
  std::string GetPathForAsset(const std::string& asset_name);
29

30 31 32
 private:
  const std::string directory_;
  fxl::UniqueFD fd_;
33

34
  FXL_DISALLOW_COPY_AND_ASSIGN(DirectoryAssetBundle);
35 36 37 38 39
};

}  // namespace blink

#endif  // FLUTTER_ASSETS_DIRECTORY_ASSET_BUNDLE_H_