You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.8 KiB
49 lines
1.8 KiB
/* License: Apache 2.0. See LICENSE file in root directory. */
|
|
/* Copyright(c) 2019 Intel Corporation. All Rights Reserved. */
|
|
#pragma once
|
|
#include "../../third-party/rapidxml/rapidxml_utils.hpp"
|
|
#include "fw-logs-formating-options.h"
|
|
|
|
using namespace rapidxml;
|
|
|
|
namespace librealsense
|
|
{
|
|
namespace fw_logs
|
|
{
|
|
class fw_logs_xml_helper
|
|
{
|
|
public:
|
|
enum node_type
|
|
{
|
|
event,
|
|
file,
|
|
thread,
|
|
enums,
|
|
none
|
|
};
|
|
|
|
fw_logs_xml_helper(std::string xml_content);
|
|
~fw_logs_xml_helper(void);
|
|
|
|
bool build_log_meta_data(fw_logs_formating_options* logs_formating_options);
|
|
|
|
private:
|
|
bool init();
|
|
bool build_meta_data_structure(xml_node<>* xml_node_list_of_events, fw_logs_formating_options* logs_formating_options);
|
|
node_type get_next_node(xml_node<>* xml_node_list_of_events, int* id, int* num_of_params, std::string* line);
|
|
bool get_thread_node(xml_node<>* node_file, int* thread_id, std::string* thread_name);
|
|
bool get_event_node(xml_node<>* node_event, int* event_id, int* num_of_params, std::string* line);
|
|
bool get_enum_name_node(xml_node<>* node_file, int* thread_id, std::string* thread_name);
|
|
bool get_enum_value_node(xml_node<>* node_file, int* thread_id, std::string* enum_name);
|
|
bool get_file_node(xml_node<>* node_file, int* file_id, std::string* file_name);
|
|
bool get_root_node(xml_node<>** node);
|
|
bool try_load_external_xml();
|
|
|
|
bool _init_done;
|
|
std::string _xml_content;
|
|
xml_document<> _xml_doc;
|
|
std::vector<char> _document_buffer;
|
|
};
|
|
}
|
|
}
|