🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
DAFParser.hpp
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/BaseParser.hpp"
25#include <vector>
26
27AST_NAMESPACE_BEGIN
28
34struct DAF_FileRecord;
35struct DAF_CommentArea;
36struct DAF_SummaryRecords;
37struct DAF_NameRecords;
38struct DAF_ElementRecords;
39
40
45class AST_UTIL_API DAFParser: public BaseParser
46{
47public:
48 using Record = std::array<char, 1024>;
49
50 DAFParser()=default;
51 DAFParser(StringView filepath);
52 ~DAFParser()=default;
53
54 using BaseParser::open;
55
59 errc_t parse();
60
65 errc_t parse(StringView filepath);
66
69 bool isValidFile() const;
70
76 size_t readRecord(int recordIndex, void* buffer, size_t size) const;
77
82 size_t readFileRecord(void* buffer, size_t size) const;
83
87 errc_t getFileRecord(Record& fileRecord) const;
88
89
93 errc_t getSummaryRecords(std::vector<Record>& summaryRecords) const;
94
95
103 errc_t getFileRecord(int& nd, int& ni, int& fward, int& bward, int& free) const;
104
105
109 errc_t getComment(std::string& comment) const;
110
114 errc_t getComment(std::vector<std::string>& comments) const;
115
118 void printComment(std::FILE* fp=stdout) const;
119
120protected:
121 errc_t runTest();
122 errc_t readSummaryRecords(int fward, int bward, std::vector<Record>& summaryRecords) const;
123 const DAF_FileRecord* getFileRecord() const;
124
125protected:
127 bool isValidFile_=false;
128 bool isSameEndian_=false;
129};
130
133AST_NAMESPACE_END
解析器基类
定义 BaseParser.hpp:56
SPICE 双精度数组文件解析器 DAF(Double Precision Array File,双精度数组文件)
定义 DAFParser.hpp:46
Record fileRecord_
文件记录头
定义 DAFParser.hpp:126
std::array< char, 1024 > Record
记录缓冲区
定义 DAFParser.hpp:48
文件记录 (Record 1, 1024 字节)
定义 DAFParser.cpp:40