client-cpp  0.8.1
ILogUploadStrategy.hpp
Go to the documentation of this file.
1 
17 #ifndef ILOGUPLOADSTRATEGY_HPP_
18 #define ILOGUPLOADSTRATEGY_HPP_
19 
20 #include <memory>
21 #include <cstdint>
22 
23 #include "kaa/gen/EndpointGen.hpp"
24 
25 namespace kaa {
26 
27 /*
28  * Forward declaration.
29  */
30 class ILogStorageStatus;
31 class ILogFailoverCommand;
32 
37  NOOP = 0,
38  UPLOAD
39 };
40 
47 public:
62 
70  virtual std::size_t getTimeout() = 0;
71 
72  virtual std::size_t getTimeoutCheckPeriod() = 0;
73 
74  virtual std::size_t getLogUploadCheckPeriod() = 0;
75 
81  virtual std::size_t getMaxParallelUploads() = 0;
82 
88  virtual void onTimeout(ILogFailoverCommand& controller) = 0;
89 
98  virtual void onFailure(ILogFailoverCommand& controller, LogDeliveryErrorCode code) = 0;
99 
100  virtual ~ILogUploadStrategy() {}
101 };
102 
103 
107 typedef std::shared_ptr<ILogUploadStrategy> ILogUploadStrategyPtr;
108 
109 } // namespace kaa
110 
111 #endif /* ILOGUPLOADSTRATEGY_HPP_ */
virtual void onFailure(ILogFailoverCommand &controller, LogDeliveryErrorCode code)=0
Callback is used when the log delivery is failed.
The public interface for the log upload strategy.
virtual LogUploadStrategyDecision isUploadNeeded(ILogStorageStatus &status)=0
Decides whether the log upload is needed.
virtual std::size_t getTimeoutCheckPeriod()=0
virtual std::size_t getTimeout()=0
Maximum time to wait the log delivery response.
virtual std::size_t getMaxParallelUploads()=0
Max amount of log batches allowed to be uploaded parallel.
virtual std::size_t getLogUploadCheckPeriod()=0
std::shared_ptr< ILogUploadStrategy > ILogUploadStrategyPtr
LogUploadStrategyDecision
Log upload decisions.
virtual void onTimeout(ILogFailoverCommand &controller)=0
Callback is used when the log delivery timeout detected.
The public interface to represent the current log storage state.