16 #ifndef ACSDKASSETMANAGER_SRC_URLREQUESTER_H_
17 #define ACSDKASSETMANAGER_SRC_URLREQUESTER_H_
30 namespace acsdkAssets {
44 availableBudget = budget;
52 return availableBudget >=
static_cast<size_t>(dlNow);
56 std::atomic_size_t availableBudget{0};
68 std::shared_ptr<StorageManager> storageManager,
69 std::shared_ptr<commonInterfaces::AmdCommunicationInterface> communicationHandler,
70 std::shared_ptr<RequesterMetadata> metadata,
71 std::string metadataFilePath,
72 std::string workingDirectory,
73 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::AuthDelegateInterface> authDelegate,
74 std::shared_ptr<alexaClientSDK::avsCommon::utils::power::PowerResource> powerResource,
75 std::shared_ptr<UrlAllowListWrapper> allowUrlList);
77 size_t deleteAndCleanupLocked(std::unique_lock<std::mutex>& lock)
override;
83 void downloadWorker();
87 std::string m_workingDirectory;
89 std::condition_variable m_stateTrigger;
91 std::future<void> m_downloadFuture;
93 std::shared_ptr<CurlProgressCallback> m_downloadProgressTrigger;
95 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::AuthDelegateInterface> m_authDelegate;
97 std::shared_ptr<alexaClientSDK::avsCommon::utils::power::PowerResource> m_powerResource;
99 std::shared_ptr<UrlAllowListWrapper> m_allowUrlList;
101 friend RequesterFactory;
108 #endif // ACSDKASSETMANAGER_SRC_URLREQUESTER_H_