client-cpp  0.7.0
ILogUploadStrategy.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2014 CyberVision, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
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 
36  NOOP = 0,
37  UPLOAD
38 };
39 
46 public:
61 
68  virtual std::size_t getBatchSize() = 0;
69 
75  virtual std::size_t getTimeout() = 0;
76 
82  virtual void onTimeout() = 0;
83 
91  virtual void onFailure(LogDeliveryErrorCode code) = 0;
92 
93  virtual ~ILogUploadStrategy() {}
94 };
95 
96 
100 typedef std::shared_ptr<ILogUploadStrategy> ILogUploadStrategyPtr;
101 
102 } // namespace kaa
103 
104 #endif /* ILOGUPLOADSTRATEGY_HPP_ */
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 getTimeout()=0
Maximum time to wait the log delivery response.
virtual void onTimeout()=0
Callback is used when the log delivery timeout detected.
virtual std::size_t getBatchSize()=0
Retrieves the maximum size of the report pack that will be delivered in the single request to the Ope...
std::shared_ptr< ILogUploadStrategy > ILogUploadStrategyPtr
virtual void onFailure(LogDeliveryErrorCode code)=0
Callback is used when the log delivery is failed.
LogUploadStrategyDecision
Log upload decisions.
The public interface to represent the current log storage state.