Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
shell
common
resource_cache_limit_calculator.h
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef FLUTTER_SHELL_COMMON_RESOURCE_CACHE_LIMIT_CALCULATOR_H_
6
#define FLUTTER_SHELL_COMMON_RESOURCE_CACHE_LIMIT_CALCULATOR_H_
7
8
#include <cstdint>
9
#include <unordered_map>
10
11
#include "flutter/fml/macros.h"
12
#include "flutter/fml/memory/weak_ptr.h"
13
14
namespace
flutter
{
15
class
ResourceCacheLimitItem
{
16
public
:
17
// The expected GPU resource cache limit in bytes. This will be called on the
18
// platform thread.
19
virtual
size_t
GetResourceCacheLimit
() = 0;
20
21
protected
:
22
virtual
~ResourceCacheLimitItem
() =
default
;
23
};
24
25
class
ResourceCacheLimitCalculator
{
26
public
:
27
explicit
ResourceCacheLimitCalculator
(
size_t
max_bytes_threshold)
28
: max_bytes_threshold_(max_bytes_threshold) {}
29
30
~ResourceCacheLimitCalculator
() =
default
;
31
32
// This will be called on the platform thread.
33
void
AddResourceCacheLimitItem
(
34
const
fml::WeakPtr<ResourceCacheLimitItem>
& item) {
35
items_.push_back(item);
36
}
37
38
// The maximum GPU resource cache limit in bytes calculated by
39
// 'ResourceCacheLimitItem's. This will be called on the platform thread.
40
size_t
GetResourceCacheMaxBytes
();
41
42
private
:
43
std::vector<fml::WeakPtr<ResourceCacheLimitItem>> items_;
44
size_t
max_bytes_threshold_;
45
FML_DISALLOW_COPY_AND_ASSIGN
(
ResourceCacheLimitCalculator
);
46
};
47
}
// namespace flutter
48
49
#endif
// FLUTTER_SHELL_COMMON_RESOURCE_CACHE_LIMIT_CALCULATOR_H_
flutter::ResourceCacheLimitCalculator
Definition
resource_cache_limit_calculator.h:25
flutter::ResourceCacheLimitCalculator::AddResourceCacheLimitItem
void AddResourceCacheLimitItem(const fml::WeakPtr< ResourceCacheLimitItem > &item)
Definition
resource_cache_limit_calculator.h:33
flutter::ResourceCacheLimitCalculator::GetResourceCacheMaxBytes
size_t GetResourceCacheMaxBytes()
Definition
resource_cache_limit_calculator.cc:9
flutter::ResourceCacheLimitCalculator::~ResourceCacheLimitCalculator
~ResourceCacheLimitCalculator()=default
flutter::ResourceCacheLimitCalculator::ResourceCacheLimitCalculator
ResourceCacheLimitCalculator(size_t max_bytes_threshold)
Definition
resource_cache_limit_calculator.h:27
flutter::ResourceCacheLimitItem
Definition
resource_cache_limit_calculator.h:15
flutter::ResourceCacheLimitItem::GetResourceCacheLimit
virtual size_t GetResourceCacheLimit()=0
flutter::ResourceCacheLimitItem::~ResourceCacheLimitItem
virtual ~ResourceCacheLimitItem()=default
fml::WeakPtr
Definition
weak_ptr.h:47
FML_DISALLOW_COPY_AND_ASSIGN
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
Definition
macros.h:27
flutter
Definition
asset_manager.cc:10
Generated on Fri Apr 26 2024 06:14:18 for Flutter Engine by
1.9.8