123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- #ifndef CNSTREAM_FRAMEWORK_CORE_INCLUDE_PROFILER_TRACE_SERIALIZE_HELPER_HPP_
- #define CNSTREAM_FRAMEWORK_CORE_INCLUDE_PROFILER_TRACE_SERIALIZE_HELPER_HPP_
- #include <rapidjson/document.h>
- #include <rapidjson/rapidjson.h>
- #include <rapidjson/stringbuffer.h>
- #include <rapidjson/writer.h>
- #include <fstream>
- #include <string>
- #include "cnstream_common.hpp"
- #include "cnstream_logging.hpp"
- #include "trace.hpp"
- namespace cnstream {
- class TraceSerializeHelper {
- public:
-
- static bool DeserializeFromJSONStr(const std::string& jsonstr, TraceSerializeHelper* pout);
-
- static bool DeserializeFromJSONFile(const std::string& filename, TraceSerializeHelper* pout);
-
- TraceSerializeHelper();
-
- TraceSerializeHelper(const TraceSerializeHelper& other);
-
- TraceSerializeHelper(TraceSerializeHelper&& other);
-
- TraceSerializeHelper& operator=(const TraceSerializeHelper& other);
-
- TraceSerializeHelper& operator=(TraceSerializeHelper&& other);
-
- ~TraceSerializeHelper() = default;
-
- void Serialize(const PipelineTrace& pipeline_trace);
-
- void Merge(const TraceSerializeHelper& t);
-
- std::string ToJsonStr() const;
-
- bool ToFile(const std::string& filename) const;
-
- void Reset();
- private:
- rapidjson::Document doc_;
- };
- inline
- bool TraceSerializeHelper::ToFile(const std::string& filename) const {
- std::ofstream ofs(filename);
- if (!ofs.is_open()) {
- LOGE(PROFILER) << "Open or create file failed. filename: " << filename;
- return false;
- }
- ofs << ToJsonStr();
- ofs.close();
- return true;
- }
- }
- #endif
|