radio_tool 0.2.1
Loading...
Searching...
No Matches
rdt.hpp
1
18#pragma once
19
20#include <radio_tool/codeplug/codeplug.hpp>
21#include <radio_tool/codeplug/rdt_header.hpp>
22#include <radio_tool/codeplug/rdt_general.hpp>
23
24#include <string>
25#include <fstream>
26#include <memory>
27
28namespace radio_tool::codeplug
29{
30 class RDT : public CodeplugSupport {
31 public:
32 static auto SupportsCodeplug(const std::string &file) -> bool
33 {
34 std::ifstream file_test(file, std::ios_base::in | std::ios_base::binary);
35 if(file_test.is_open())
36 {
37 auto hdr = RDTHeader();
38 hdr.Read(file_test);
39 file_test.close();
40
41 return hdr.Validate();
42 }
43 return false;
44 }
45
46 static auto Create() -> std::unique_ptr<RDT>
47 {
48 auto nInst = new RDT();
49 return std::unique_ptr<RDT>(nInst);
50 }
51
52 auto Read(const std::string&) -> void override;
53 auto Write(const std::string&) const -> void override;
54 auto GetData() const -> const std::vector<uint8_t> override;
55 auto ToString() const -> const std::string override;
56 private:
57 RDTHeader header;
58 time_t timestamp;
59 RDTGeneral general;
60 };
61}
auto Write(const std::string &) const -> void override
Definition: rdt.cpp:47
auto ToString() const -> const std::string override
Definition: rdt.cpp:56
auto Read(const std::string &) -> void override
Definition: rdt.cpp:25
auto GetData() const -> const std::vector< uint8_t > override
Definition: rdt.cpp:51