|
AlexaClientSDK
1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
|
Go to the documentation of this file.
16 #ifndef ACSDKASSETMANAGER_SRC_STORAGEMANAGER_H_
17 #define ACSDKASSETMANAGER_SRC_STORAGEMANAGER_H_
22 #include <unordered_map>
27 namespace acsdkAssets {
52 if (m_reservedSize == 0) {
56 if (
auto sm = m_storageManager.lock()) {
57 sm->freeReservedSpace(m_reservedSize);
67 ReservationToken(std::weak_ptr<StorageManager> storageManager,
size_t reservedSize) :
68 m_storageManager(
std::move(storageManager)),
69 m_reservedSize(reservedSize) {
73 std::weak_ptr<StorageManager> m_storageManager;
75 size_t m_reservedSize;
88 static std::shared_ptr<StorageManager>
create(
89 const std::string& workingDirectory,
90 const std::shared_ptr<AssetManager>& assetManager);
111 std::unique_ptr<StorageManager::ReservationToken> reservationToken,
112 const std::string&
id,
113 const std::string& sourcePath);
141 std::unique_ptr<ReservationToken>
reserveSpace(
size_t requestedAmount);
164 const std::string& workingDirectory,
165 const std::shared_ptr<AssetManager>& assetManager,
196 const std::string m_workingDirectory;
197 const std::weak_ptr<AssetManager> m_assetManager;
199 std::mutex m_allocationMutex;
200 std::unordered_map<std::string, std::shared_ptr<Resource>> m_bank;
202 size_t m_allocatedSize;
209 #endif // ACSDKASSETMANAGER_SRC_STORAGEMANAGER_H_
void setBudget(size_t valueMB)
Definition: StorageManager.cpp:270
bool requestSpace(size_t requestedAmount)
Definition: StorageManager.cpp:132
void purgeUnreferenced()
Definition: StorageManager.cpp:117
~ReservationToken()
Definition: StorageManager.h:51
bool init()
Definition: StorageManager.cpp:93
Definition: StorageManager.h:37
std::shared_ptr< Resource > acquireResource(const std::string &id)
Definition: StorageManager.cpp:218
StorageManager(const std::string &workingDirectory, const std::shared_ptr< AssetManager > &assetManager, size_t budget)
Definition: StorageManager.cpp:83
std::unique_ptr< ReservationToken > reserveSpace(size_t requestedAmount)
Definition: StorageManager.cpp:247
~StorageManager()=default
size_t availableBudget()
Definition: StorageManager.cpp:150
void requestGarbageCollection(size_t requestedAmount)
Definition: StorageManager.cpp:166
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
std::shared_ptr< Resource > registerAndAcquireResource(std::unique_ptr< StorageManager::ReservationToken > reservationToken, const std::string &id, const std::string &sourcePath)
Definition: StorageManager.cpp:178
Definition: CapabilityConfiguration.h:190
size_t releaseResource(const std::shared_ptr< Resource > &resource)
Definition: StorageManager.cpp:227
Definition: StorageManager.h:46
static std::shared_ptr< StorageManager > create(const std::string &workingDirectory, const std::shared_ptr< AssetManager > &assetManager)
Definition: StorageManager.cpp:60
size_t getBudget()
Definition: StorageManager.cpp:265
static constexpr auto MAX_BUDGET_MB
Definition: StorageManager.h:39
void freeReservedSpace(size_t size)
Definition: StorageManager.cpp:260
AlexaClientSDK 1.26.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Licensed under the Apache License, Version 2.0