directory_asset_bundle.h 1.0 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
#include "flutter/assets/asset_resolver.h"
#include "flutter/fml/unique_fd.h"
10
#include "lib/fxl/macros.h"
11
#include "lib/fxl/memory/ref_counted.h"
12 13 14

namespace blink {

15
class DirectoryAssetBundle : public AssetResolver {
16
 public:
17
  explicit DirectoryAssetBundle(fml::UniqueFD descriptor);
18

19
  ~DirectoryAssetBundle() override;
20

21
 private:
22 23 24 25 26 27 28 29 30 31 32
  const fml::UniqueFD descriptor_;
  bool is_valid_ = false;

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

  // |blink::AssetResolver|
  bool IsValid() const override;

  // |blink::AssetResolver|
  bool GetAsBuffer(const std::string& asset_name,
                   std::vector<uint8_t>* data) const override;
33

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

}  // namespace blink

#endif  // FLUTTER_ASSETS_DIRECTORY_ASSET_BUNDLE_H_