2 * Samsung Ukraine R&D Center (SRK under a contract between)
3 * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
4 * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License
19 * @file reportcomposer.h
20 * @brief Report composer helper
21 * @date Created Feb 14, 2018
22 * @author Mail to: <A HREF="mailto:d.lomtev@samsung.com">Dmytro Lomtev, d.lomtev@samsung.com</A>
24 #ifndef REPORTCOMPOSER_H
25 #define REPORTCOMPOSER_H
28 #include <jsoncpp/json/value.h>
31 namespace communication
34 typedef std::pair<std::string, Json::Value> ReportEvent;
37 * @brief The ReportComposer class used for packing report into one message
48 * @brief Adds a report event to then message
49 * @param event - report event
51 void addEvent(const ReportEvent& event);
54 * @brief Adds a group of events to the message
55 * @param first iterator pointing to the first event
56 * @param second iterator pointing after the last event
58 template<typename InputIterator>
59 void addEvents(InputIterator first, InputIterator last)
61 for (;first != last; ++first) {
67 * @brief str Returns composed JSON report as string
68 * @return composed report as string
73 * @brief get Returns composed report as Json::Value
74 * @return report as Json::Value
76 const Json::Value& get();
82 } // namespace communication
84 #endif // REPORTCOMPOSER_H