@@ -70,6 +70,20 @@ class SplitWriter {
70
70
std::size_t m_fileCounter{1 };
71
71
std::size_t m_maxOutputSize;
72
72
};
73
+
74
+ template <typename Writer>
75
+ void processMessages (const QDltFile& m_input, QDltFilterList& filterList, Writer& writer) {
76
+ for (int i = 0 ; i < m_input.size (); ++i) {
77
+ auto res = getMessage (m_input, i);
78
+ if (!res) {
79
+ continue ;
80
+ }
81
+ auto [msg, buf] = *res;
82
+ if (filterList.isEmpty () || filterList.checkFilter (msg)) {
83
+ writer.write (buf);
84
+ }
85
+ }
86
+ }
73
87
}
74
88
75
89
DltFileExporter::DltFileExporter (const QDltFile& input) : m_input(input) {}
@@ -103,34 +117,14 @@ void DltFileExporter::exportMessages(const QString& outputName)
103
117
104
118
const QFileInfo filterInfo (filterFilepath);
105
119
if (m_maxOutputSize) {
106
- auto writer =
107
- SplitWriter (outputDir + " /" + filterInfo.baseName () + " _" , *m_maxOutputSize);
108
- for (int i = 0 ; i < m_input.size (); ++i) {
109
- auto res = getMessage (m_input, i);
110
- if (!res) {
111
- continue ;
112
- }
113
- auto [msg, buf] = *res;
114
- if (filterList.isEmpty () || filterList.checkFilter (msg)) {
115
- writer.write (buf);
116
- }
117
- }
120
+ SplitWriter writer (outputDir + " /" + filterInfo.baseName () + " _" , *m_maxOutputSize);
121
+ processMessages (m_input, filterList, writer);
118
122
} else {
119
- auto writer = SimpleWriter (outputDir + " /" + filterInfo.baseName () + " .dlt" );
120
- for (int i = 0 ; i < m_input.size (); ++i) {
121
- auto res = getMessage (m_input, i);
122
- if (!res) {
123
- continue ;
124
- }
125
- auto [msg, buf] = *res;
126
- if (filterList.isEmpty () || filterList.checkFilter (msg)) {
127
- writer.write (buf);
128
- }
129
- }
123
+ SimpleWriter writer (outputDir + " /" + filterInfo.baseName () + " .dlt" );
124
+ processMessages (m_input, filterList, writer);
130
125
}
131
126
}
132
127
} else {
133
-
134
128
QDltFilterList filterList;
135
129
for (const auto & filterFilepath : m_filters) {
136
130
if (!filterList.LoadFilter (filterFilepath, false )) {
@@ -141,31 +135,10 @@ void DltFileExporter::exportMessages(const QString& outputName)
141
135
const QFileInfo info (outputName);
142
136
if (m_maxOutputSize) {
143
137
SplitWriter writer (info.absolutePath () + " /" + info.baseName () + " _" , *m_maxOutputSize);
144
- for (int i = 0 ; i < m_input.size (); ++i) {
145
- auto res = getMessage (m_input, i);
146
- if (!res) {
147
- continue ;
148
- }
149
- auto [msg, buf] = *res;
150
-
151
- if (filterList.isEmpty () || filterList.checkFilter (msg)) {
152
- writer.write (buf);
153
- }
154
- }
155
-
138
+ processMessages (m_input, filterList, writer);
156
139
} else {
157
140
SimpleWriter writer (outputName);
158
- for (int i = 0 ; i < m_input.size (); ++i) {
159
- auto res = getMessage (m_input, i);
160
- if (!res) {
161
- continue ;
162
- }
163
- auto [msg, buf] = *res;
164
-
165
- if (filterList.isEmpty () || filterList.checkFilter (msg)) {
166
- writer.write (buf);
167
- }
168
- }
141
+ processMessages (m_input, filterList, writer);
169
142
}
170
143
}
171
144
}
0 commit comments