17 #ifndef LOGCOLLECTOR_HPP_
18 #define LOGCOLLECTOR_HPP_
23 #include <unordered_map>
36 class IExecutorContext;
37 class LoggingTransport;
40 typedef std::chrono::system_clock
clock_t;
45 TimeoutInfo(
const std::int32_t& transportAccessPointId,
const std::chrono::time_point<clock_t>& timeoutTime)
46 : transportAccessPointId_(transportAccessPointId), timeoutTime_(timeoutTime) {}
49 return transportAccessPointId_;
57 std::int32_t transportAccessPointId_;
58 std::chrono::time_point<clock_t> timeoutTime_;
68 virtual void addLogRecord(
const KaaUserLogRecord& record);
79 virtual void retryLogUpload();
80 virtual void retryLogUpload(std::size_t delay);
82 virtual void switchAccessPoint();
87 bool isDeliveryTimeout();
88 void addDeliveryTimeout(std::int32_t requestId);
89 bool removeDeliveryTimeout(std::int32_t requestId);
91 void startTimeoutTimer();
92 void startLogUploadCheckTimer();
94 void processTimeout();
96 void rescheduleTimers();
98 bool isUploadAllowed();
102 KAA_MUTEX_DECLARE(storageGuard_);
107 KAA_MUTEX_DECLARE(transportGuard_);
111 std::unordered_map<std::int32_t, TimeoutInfo> timeouts_;
112 std::int32_t timeoutAccessPointId_;
113 KAA_MUTEX_DECLARE(timeoutsGuard_);
virtual void setStorage(ILogStoragePtr storage)
Sets the new log storage.
void setTransport(LoggingTransport *transport)
virtual void setUploadStrategy(ILogUploadStrategyPtr strategy)
Sets the new log upload strategy.
std::shared_ptr< ILogStorage > ILogStoragePtr
virtual std::shared_ptr< LogSyncRequest > getLogUploadRequest()
LogCollector(IKaaChannelManagerPtr manager, IExecutorContext &executorContext, const KaaClientProperties &clientProperties)
virtual void addLogRecord(const KaaUserLogRecord &record)
Adds a new log record to the log storage.
TimeoutInfo(const std::int32_t &transportAccessPointId, const std::chrono::time_point< clock_t > &timeoutTime)
The public interface to the Kaa log collecting subsystem.
virtual void onLogUploadResponse(const LogSyncResponse &response)
NOTE: THIS FILE IS AUTO-GENERATED. DO NOT EDIT IT MANUALLY.
std::shared_ptr< ILogUploadStrategy > ILogUploadStrategyPtr
std::chrono::system_clock clock_t
LogUploadStrategyDecision
Log upload decisions.
std::chrono::time_point< clock_t > getTimeoutTime() const
std::int32_t getTransportAccessPointId() const