liborigin ..
/home/iurt/rpmbuild/BUILD/liborigin-3.0.3-build/liborigin-3.0.3/OriginAnyParser.h
Go to the documentation of this file.
1/*
2 OriginAnyParser.h
3
4 SPDX-FileCopyrightText: 2017 Miquel Garriga <gbmiquel@gmail.com>
5
6 SPDX-License-Identifier: GPL-3.0-or-later
7
8 Parser for all versions. Based mainly on Origin750Parser.h
9*/
10#ifndef ORIGIN_ANY_PARSER_H
11#define ORIGIN_ANY_PARSER_H
12
13#include "OriginParser.h"
14#include "endianfstream.hh"
15
16#include <string>
17#include <cmath> // for floor()
18
19using namespace Origin;
20using namespace endianfstream;
21
23{
24public:
25 explicit OriginAnyParser(const std::string &fileName);
26 bool parse() override;
27
28protected:
29 unsigned int readObjectSize();
30 std::string readObjectAsString(unsigned int);
31 void readFileVersion();
32 void readGlobalHeader();
33 bool readDataSetElement();
34 bool readWindowElement();
35 bool readLayerElement();
36 unsigned int readAnnotationList();
38 bool readCurveElement();
40 bool readAxisParameterElement(unsigned int);
42 bool readNoteElement();
43 void readProjectTree();
44 unsigned int readFolderTree(tree<ProjectNode>::iterator, unsigned int);
45 void readProjectLeaf(tree<ProjectNode>::iterator);
46 void readAttachmentList();
47 bool getColumnInfoAndData(const std::string &, unsigned int, const std::string &, unsigned int);
48 void getMatrixValues(const std::string &, unsigned int, short, char, char,
49 std::vector<Origin::Matrix>::difference_type);
50 void getWindowProperties(Origin::Window &, const std::string &, unsigned int);
51 void getLayerProperties(const std::string &, unsigned int);
52 Origin::Color getColor(const std::string &);
53 void getAnnotationProperties(const std::string &, unsigned int, const std::string &,
54 unsigned int, const std::string &, unsigned int,
55 const std::string &, unsigned int);
56 void getCurveProperties(const std::string &, unsigned int, const std::string &, unsigned int);
57 void getAxisBreakProperties(const std::string &, unsigned int);
58 void getAxisParameterProperties(const std::string &, unsigned int, int);
59 void getNoteProperties(const std::string &, unsigned int, const std::string &, unsigned int,
60 const std::string &, unsigned int);
61 void getColorMap(ColorMap &, const std::string &, unsigned int);
62 void getZcolorsMap(ColorMap &, const std::string &, unsigned int);
63 void getProjectLeafProperties(tree<ProjectNode>::iterator, const std::string &, unsigned int);
64 void getProjectFolderProperties(tree<ProjectNode>::iterator, const std::string &, unsigned int);
65 void outputProjectTree(std::ostream &);
66
67 inline time_t doubleToPosixTime(double jdt)
68 {
69 /* 2440587.5 is julian date for the unixtime epoch */
70 return (time_t)floor((jdt - 2440587) * 86400. + 0.5);
71 }
72
73 iendianfstream file;
74 FILE *logfile;
75
76 std::streamsize d_file_size;
77 std::streamoff curpos;
78 unsigned int objectIndex, parseError;
79 std::vector<Origin::SpreadSheet>::difference_type ispread;
80 std::vector<Origin::Matrix>::difference_type imatrix;
81 std::vector<Origin::Excel>::difference_type iexcel;
83};
84
85#endif // ORIGIN_ANY_PARSER_H
#define ORIGIN_EXPORT
Definition OriginObj.h:26
iendianfstream file
Definition OriginAnyParser.h:73
bool readAxisParameterElement(unsigned int)
Definition OriginAnyParser.cpp:745
std::vector< Origin::Excel >::difference_type iexcel
Definition OriginAnyParser.h:81
void getAxisParameterProperties(const std::string &, unsigned int, int)
Definition OriginAnyParser.cpp:2757
unsigned int readObjectSize()
Definition OriginAnyParser.cpp:228
std::vector< Origin::Matrix >::difference_type imatrix
Definition OriginAnyParser.h:80
std::streamoff curpos
Definition OriginAnyParser.h:77
void getWindowProperties(Origin::Window &, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:1399
void getCurveProperties(const std::string &, unsigned int, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:2150
void getProjectFolderProperties(tree< ProjectNode >::iterator, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:3235
bool readAnnotationElement()
Definition OriginAnyParser.cpp:575
void getLayerProperties(const std::string &, unsigned int)
Definition OriginAnyParser.cpp:1501
bool readParameterElement()
Definition OriginAnyParser.cpp:773
unsigned int readAnnotationList()
Definition OriginAnyParser.cpp:561
void getProjectLeafProperties(tree< ProjectNode >::iterator, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:3205
unsigned int readFolderTree(tree< ProjectNode >::iterator, unsigned int)
Definition OriginAnyParser.cpp:893
bool readDataSetElement()
Definition OriginAnyParser.cpp:331
int ilayer
Definition OriginAnyParser.h:82
bool readNoteElement()
Definition OriginAnyParser.cpp:805
std::vector< Origin::SpreadSheet >::difference_type ispread
Definition OriginAnyParser.h:79
void outputProjectTree(std::ostream &)
Definition OriginAnyParser.cpp:3253
void readFileVersion()
Definition OriginAnyParser.cpp:268
OriginAnyParser(const std::string &fileName)
Definition OriginAnyParser.cpp:69
void getAxisBreakProperties(const std::string &, unsigned int)
Definition OriginAnyParser.cpp:2713
Origin::Color getColor(const std::string &)
Definition OriginAnyParser.cpp:1595
void getNoteProperties(const std::string &, unsigned int, const std::string &, unsigned int, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:2986
FILE * logfile
Definition OriginAnyParser.h:74
void getMatrixValues(const std::string &, unsigned int, short, char, char, std::vector< Origin::Matrix >::difference_type)
Definition OriginAnyParser.cpp:1311
void readAttachmentList()
Definition OriginAnyParser.cpp:992
void readGlobalHeader()
Definition OriginAnyParser.cpp:288
unsigned int parseError
Definition OriginAnyParser.h:78
unsigned int objectIndex
Definition OriginAnyParser.h:78
bool readLayerElement()
Definition OriginAnyParser.cpp:462
bool getColumnInfoAndData(const std::string &, unsigned int, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:1100
bool readCurveElement()
Definition OriginAnyParser.cpp:671
void getColorMap(ColorMap &, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:3069
bool readAxisBreakElement()
Definition OriginAnyParser.cpp:717
bool readWindowElement()
Definition OriginAnyParser.cpp:395
int igraph
Definition OriginAnyParser.h:82
void getAnnotationProperties(const std::string &, unsigned int, const std::string &, unsigned int, const std::string &, unsigned int, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:1646
std::string readObjectAsString(unsigned int)
Definition OriginAnyParser.cpp:244
void readProjectTree()
Definition OriginAnyParser.cpp:858
std::streamsize d_file_size
Definition OriginAnyParser.h:76
void readProjectLeaf(tree< ProjectNode >::iterator)
Definition OriginAnyParser.cpp:968
void getZcolorsMap(ColorMap &, const std::string &, unsigned int)
Definition OriginAnyParser.cpp:3130
time_t doubleToPosixTime(double jdt)
Definition OriginAnyParser.h:67
Definition OriginParser.h:26
virtual bool parse()=0
Definition OriginObj.h:31
Definition OriginObj.h:228
Definition OriginObj.h:145
Definition OriginObj.h:234