10#include "TSQLStatement.h"
30 TDatime start_datetime,
37 connectionDB = db_connect;
40 i_period_number = period_number;
42 i_start_event = start_event;
43 i_end_event = end_event;
44 ts_start_datetime = start_datetime;
45 ts_end_datetime = end_datetime;
46 str_file_path = file_path;
47 i_event_count = event_count;
49 str_file_hash = file_hash;
66 TDatime start_datetime,
74 if (connDb ==
nullptr)
79 TString sql = TString::Format(
"insert into raw_file(period_number, run_number, start_event, end_event, "
80 "start_datetime, end_datetime, file_path, event_count, file_size, file_hash) "
81 "values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)");
82 TSQLStatement* stmt = db_server->Statement(sql);
84 stmt->NextIteration();
85 stmt->SetInt(0, period_number);
86 stmt->SetInt(1, run_number);
87 stmt->SetInt(2, start_event);
88 stmt->SetInt(3, end_event);
89 stmt->SetDatime(4, start_datetime);
90 stmt->SetDatime(5, end_datetime);
91 stmt->SetString(6, file_path);
92 stmt->SetInt(7, event_count);
94 if (file_hash ==
nullptr)
97 stmt->SetString(9, *file_hash);
100 if (!stmt->Process()) {
101 cout <<
"ERROR: inserting new raw file to the Database has been failed" << endl;
111 TSQLStatement* stmt_last = db_server->Statement(
"SELECT currval(pg_get_serial_sequence('raw_file','file_id'))");
114 if (stmt_last->Process()) {
116 stmt_last->StoreResult();
119 if (!stmt_last->NextResultRow()) {
120 cout <<
"ERROR: no last ID in DB!" << endl;
124 file_id = stmt_last->GetInt(0);
128 cout <<
"ERROR: getting last ID has been failed!" << endl;
134 tmp_file_id = file_id;
135 int tmp_period_number;
136 tmp_period_number = period_number;
138 tmp_run_number = run_number;
140 tmp_start_event = start_event;
142 tmp_end_event = end_event;
143 TDatime tmp_start_datetime;
144 tmp_start_datetime = start_datetime;
145 TDatime tmp_end_datetime;
146 tmp_end_datetime = end_datetime;
147 TString tmp_file_path;
148 tmp_file_path = file_path;
150 tmp_event_count = event_count;
151 int64_t tmp_file_size;
153 TString* tmp_file_hash;
154 if (file_hash ==
nullptr)
155 tmp_file_hash =
nullptr;
157 tmp_file_hash =
new TString(*file_hash);
159 return new UniRawFile(connDb, tmp_file_id, tmp_period_number, tmp_run_number, tmp_start_event, tmp_end_event,
160 tmp_start_datetime, tmp_end_datetime, tmp_file_path, tmp_event_count, tmp_file_size,
168 if (connDb ==
nullptr)
173 TString sql = TString::Format(
"select file_id, period_number, run_number, start_event, end_event, start_datetime, "
174 "end_datetime, file_path, event_count, file_size, file_hash "
176 "where file_id = %d",
178 TSQLStatement* stmt = db_server->Statement(sql);
181 if (!stmt->Process()) {
182 cout <<
"ERROR: getting raw file from the database has been failed" << endl;
193 if (!stmt->NextResultRow()) {
194 cout <<
"ERROR: raw file was not found in the database" << endl;
202 tmp_file_id = stmt->GetInt(0);
203 int tmp_period_number;
204 tmp_period_number = stmt->GetInt(1);
206 tmp_run_number = stmt->GetInt(2);
208 tmp_start_event = stmt->GetInt(3);
210 tmp_end_event = stmt->GetInt(4);
211 TDatime tmp_start_datetime;
212 tmp_start_datetime = stmt->GetDatime(5);
213 TDatime tmp_end_datetime;
214 tmp_end_datetime = stmt->GetDatime(6);
215 TString tmp_file_path;
216 tmp_file_path = stmt->GetString(7);
218 tmp_event_count = stmt->GetInt(8);
219 int64_t tmp_file_size;
220 tmp_file_size = stmt->GetLong64(9);
221 TString* tmp_file_hash;
222 if (stmt->IsNull(10))
223 tmp_file_hash =
nullptr;
225 tmp_file_hash =
new TString(stmt->GetString(10));
229 return new UniRawFile(connDb, tmp_file_id, tmp_period_number, tmp_run_number, tmp_start_event, tmp_end_event,
230 tmp_start_datetime, tmp_end_datetime, tmp_file_path, tmp_event_count, tmp_file_size,
238 if (connDb ==
nullptr)
243 TString sql = TString::Format(
"select file_id, period_number, run_number, start_event, end_event, start_datetime, "
244 "end_datetime, file_path, event_count, file_size, file_hash "
246 "where lower(file_path) = lower('%s')",
248 TSQLStatement* stmt = db_server->Statement(sql);
251 if (!stmt->Process()) {
252 cout <<
"ERROR: getting raw file from the database has been failed" << endl;
263 if (!stmt->NextResultRow()) {
264 cout <<
"ERROR: raw file was not found in the database" << endl;
272 tmp_file_id = stmt->GetInt(0);
273 int tmp_period_number;
274 tmp_period_number = stmt->GetInt(1);
276 tmp_run_number = stmt->GetInt(2);
278 tmp_start_event = stmt->GetInt(3);
280 tmp_end_event = stmt->GetInt(4);
281 TDatime tmp_start_datetime;
282 tmp_start_datetime = stmt->GetDatime(5);
283 TDatime tmp_end_datetime;
284 tmp_end_datetime = stmt->GetDatime(6);
285 TString tmp_file_path;
286 tmp_file_path = stmt->GetString(7);
288 tmp_event_count = stmt->GetInt(8);
289 int64_t tmp_file_size;
290 tmp_file_size = stmt->GetLong64(9);
291 TString* tmp_file_hash;
292 if (stmt->IsNull(10))
293 tmp_file_hash =
nullptr;
295 tmp_file_hash =
new TString(stmt->GetString(10));
299 return new UniRawFile(connDb, tmp_file_id, tmp_period_number, tmp_run_number, tmp_start_event, tmp_end_event,
300 tmp_start_datetime, tmp_end_datetime, tmp_file_path, tmp_event_count, tmp_file_size,
308 if (connDb ==
nullptr)
313 TString sql = TString::Format(
"select 1 "
315 "where file_id = %d",
317 TSQLStatement* stmt = db_server->Statement(sql);
320 if (!stmt->Process()) {
321 cout <<
"ERROR: getting raw file from the database has been failed" << endl;
332 if (!stmt->NextResultRow()) {
348 if (connDb ==
nullptr)
353 TString sql = TString::Format(
"select 1 "
355 "where lower(file_path) = lower('%s')",
357 TSQLStatement* stmt = db_server->Statement(sql);
360 if (!stmt->Process()) {
361 cout <<
"ERROR: getting raw file from the database has been failed" << endl;
372 if (!stmt->NextResultRow()) {
388 if (connDb ==
nullptr)
393 TString sql = TString::Format(
"delete from raw_file "
394 "where file_id = $1");
395 TSQLStatement* stmt = db_server->Statement(sql);
397 stmt->NextIteration();
398 stmt->SetInt(0, file_id);
401 if (!stmt->Process()) {
402 cout <<
"ERROR: deleting raw file from the dataBase has been failed" << endl;
418 if (connDb ==
nullptr)
423 TString sql = TString::Format(
"delete from raw_file "
424 "where lower(file_path) = lower($1)");
425 TSQLStatement* stmt = db_server->Statement(sql);
427 stmt->NextIteration();
428 stmt->SetString(0, file_path);
431 if (!stmt->Process()) {
432 cout <<
"ERROR: deleting raw file from the DataBase has been failed" << endl;
448 if (connDb ==
nullptr)
453 TString sql = TString::Format(
"select file_id, period_number, run_number, start_event, end_event, start_datetime, "
454 "end_datetime, file_path, event_count, file_size, file_hash "
456 TSQLStatement* stmt = db_server->Statement(sql);
459 if (!stmt->Process()) {
460 cout <<
"ERROR: getting all 'raw files' from the dataBase has been failed" << endl;
471 cout <<
"Table 'raw_file':" << endl;
472 while (stmt->NextResultRow()) {
474 cout << (stmt->GetInt(0));
475 cout <<
", period_number: ";
476 cout << (stmt->GetInt(1));
477 cout <<
", run_number: ";
478 cout << (stmt->GetInt(2));
479 cout <<
", start_event: ";
480 cout << (stmt->GetInt(3));
481 cout <<
", end_event: ";
482 cout << (stmt->GetInt(4));
483 cout <<
", start_datetime: ";
484 cout << (stmt->GetDatime(5)).AsSQLString();
485 cout <<
", end_datetime: ";
486 cout << (stmt->GetDatime(6)).AsSQLString();
487 cout <<
", file_path: ";
488 cout << (stmt->GetString(7));
489 cout <<
", event_count: ";
490 cout << (stmt->GetInt(8));
491 cout <<
", file_size: ";
492 cout << (stmt->GetLong64(9));
493 cout <<
", file_hash: ";
494 if (stmt->IsNull(10))
497 cout << stmt->GetString(10);
511 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
517 TString sql = TString::Format(
"update raw_file "
518 "set period_number = $1 "
519 "where file_id = $2");
520 TSQLStatement* stmt = db_server->Statement(sql);
522 stmt->NextIteration();
523 stmt->SetInt(0, period_number);
524 stmt->SetInt(1, i_file_id);
527 if (!stmt->Process()) {
528 cout <<
"ERROR: updating information about raw file has been failed" << endl;
534 i_period_number = period_number;
543 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
549 TString sql = TString::Format(
"update raw_file "
550 "set run_number = $1 "
551 "where file_id = $2");
552 TSQLStatement* stmt = db_server->Statement(sql);
554 stmt->NextIteration();
555 stmt->SetInt(0, run_number);
556 stmt->SetInt(1, i_file_id);
559 if (!stmt->Process()) {
560 cout <<
"ERROR: updating information about raw file has been failed" << endl;
566 i_run_number = run_number;
575 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
581 TString sql = TString::Format(
"update raw_file "
582 "set start_event = $1 "
583 "where file_id = $2");
584 TSQLStatement* stmt = db_server->Statement(sql);
586 stmt->NextIteration();
587 stmt->SetInt(0, start_event);
588 stmt->SetInt(1, i_file_id);
591 if (!stmt->Process()) {
592 cout <<
"ERROR: updating information about raw file has been failed" << endl;
598 i_start_event = start_event;
607 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
613 TString sql = TString::Format(
"update raw_file "
614 "set end_event = $1 "
615 "where file_id = $2");
616 TSQLStatement* stmt = db_server->Statement(sql);
618 stmt->NextIteration();
619 stmt->SetInt(0, end_event);
620 stmt->SetInt(1, i_file_id);
623 if (!stmt->Process()) {
624 cout <<
"ERROR: updating information about raw file has been failed" << endl;
630 i_end_event = end_event;
639 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
645 TString sql = TString::Format(
"update raw_file "
646 "set start_datetime = $1 "
647 "where file_id = $2");
648 TSQLStatement* stmt = db_server->Statement(sql);
650 stmt->NextIteration();
651 stmt->SetDatime(0, start_datetime);
652 stmt->SetInt(1, i_file_id);
655 if (!stmt->Process()) {
656 cout <<
"ERROR: updating information about raw file has been failed" << endl;
662 ts_start_datetime = start_datetime;
671 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
677 TString sql = TString::Format(
"update raw_file "
678 "set end_datetime = $1 "
679 "where file_id = $2");
680 TSQLStatement* stmt = db_server->Statement(sql);
682 stmt->NextIteration();
683 stmt->SetDatime(0, end_datetime);
684 stmt->SetInt(1, i_file_id);
687 if (!stmt->Process()) {
688 cout <<
"ERROR: updating information about raw file has been failed" << endl;
694 ts_end_datetime = end_datetime;
703 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
709 TString sql = TString::Format(
"update raw_file "
710 "set file_path = $1 "
711 "where file_id = $2");
712 TSQLStatement* stmt = db_server->Statement(sql);
714 stmt->NextIteration();
715 stmt->SetString(0, file_path);
716 stmt->SetInt(1, i_file_id);
719 if (!stmt->Process()) {
720 cout <<
"ERROR: updating information about raw file has been failed" << endl;
726 str_file_path = file_path;
735 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
741 TString sql = TString::Format(
"update raw_file "
742 "set event_count = $1 "
743 "where file_id = $2");
744 TSQLStatement* stmt = db_server->Statement(sql);
746 stmt->NextIteration();
747 stmt->SetInt(0, event_count);
748 stmt->SetInt(1, i_file_id);
751 if (!stmt->Process()) {
752 cout <<
"ERROR: updating information about raw file has been failed" << endl;
758 i_event_count = event_count;
767 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
773 TString sql = TString::Format(
"update raw_file "
774 "set file_size = $1 "
775 "where file_id = $2");
776 TSQLStatement* stmt = db_server->Statement(sql);
778 stmt->NextIteration();
780 stmt->SetInt(1, i_file_id);
783 if (!stmt->Process()) {
784 cout <<
"ERROR: updating information about raw file has been failed" << endl;
799 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
805 TString sql = TString::Format(
"update raw_file "
806 "set file_hash = $1 "
807 "where file_id = $2");
808 TSQLStatement* stmt = db_server->Statement(sql);
810 stmt->NextIteration();
811 if (file_hash ==
nullptr)
814 stmt->SetString(0, *file_hash);
815 stmt->SetInt(1, i_file_id);
818 if (!stmt->Process()) {
819 cout <<
"ERROR: updating information about raw file has been failed" << endl;
826 delete str_file_hash;
827 if (file_hash ==
nullptr)
828 str_file_hash =
nullptr;
830 str_file_hash =
new TString(*file_hash);
839 cout <<
"Table 'raw_file'";
840 cout <<
". file_id: " << i_file_id <<
". period_number: " << i_period_number <<
". run_number: " << i_run_number
841 <<
". start_event: " << i_start_event <<
". end_event: " << i_end_event
842 <<
". start_datetime: " << ts_start_datetime.AsSQLString()
843 <<
". end_datetime: " << ts_end_datetime.AsSQLString() <<
". file_path: " << str_file_path
844 <<
". event_count: " << i_event_count <<
". file_size: " << i64_file_size
845 <<
". file_hash: " << (str_file_hash ==
nullptr ?
"nullptr" : *str_file_hash) << endl;
857 if (connDb ==
nullptr)
864 sql = TString::Format(
"select 1 "
866 "where period_number = %d AND run_number = %d "
867 "AND %d >= start_event AND %d <= end_event AND %d >= start_event AND %d <= end_event "
868 "AND NOT (((%d - start_event) = 1) AND ((%d - end_event) = -1))",
869 period_number, run_number, start_event, start_event, end_event, end_event,
870 start_event, end_event);
872 sql = TString::Format(
"select 1 "
874 "where period_number = %d AND run_number = %d "
875 "AND start_event = %d AND end_event = %d",
876 period_number, run_number, start_event, end_event);
877 TSQLStatement* stmt = db_server->Statement(sql);
880 if (!stmt->Process()) {
881 cout <<
"ERROR: getting raw file from the database has been failed" << endl;
892 if (!stmt->NextResultRow()) {
910 if (connDb ==
nullptr)
915 TString sql = TString::Format(
"select end_event "
917 "where period_number = %d AND run_number = %d "
918 "AND %d = start_event "
919 "order by end_event desc limit 1",
920 period_number, run_number, start_event);
921 TSQLStatement* stmt = db_server->Statement(sql);
924 if (!stmt->Process()) {
925 cout <<
"ERROR: getting raw file from the database has been failed" << endl;
936 if (!stmt->NextResultRow()) {
942 int i_end_event = stmt->GetInt(0);
943 if (i_end_event == 0) {
945 <<
"ERROR: while checking existense of raw files in UniConDa one raw file is found with 0 end event value ("
946 << period_number <<
":" << run_number <<
":" << start_event <<
")" << endl
947 <<
"The function returns 1 end event value to exclude uncertancies" << endl;
961 if (connDb ==
nullptr)
966 TString sql = TString::Format(
"select sum(event_count) "
968 "where period_number = %d AND run_number = %d",
969 period_number, run_number);
970 TSQLStatement* stmt = db_server->Statement(sql);
973 if (!stmt->Process()) {
974 cout <<
"ERROR: getting summary event count for run " << period_number <<
":" << run_number
975 <<
" from the database has been failed" << endl;
985 if (!stmt->NextResultRow()) {
986 cout <<
"WARNING: there are no raw files for run " << period_number <<
":" << run_number <<
" in the database"
993 int sum_event_count = stmt->GetInt(0);
998 return sum_event_count;
1005 if (connDb ==
nullptr)
1010 TString sql = TString::Format(
"select file_id, period_number, run_number, start_event, end_event, start_datetime, "
1011 "end_datetime, file_path, event_count, file_size, file_hash "
1013 "where period_number = %d AND run_number = %d "
1014 "order by start_event asc",
1015 period_number, run_number);
1016 TSQLStatement* stmt = db_server->Statement(sql);
1019 if (!stmt->Process()) {
1020 cout <<
"ERROR: getting raw files for run " << period_number <<
":" << run_number
1021 <<
" from the database has been failed" << endl;
1028 stmt->StoreResult();
1030 TObjArray* raw_files =
new TObjArray();
1031 while (stmt->NextResultRow()) {
1033 if (connRaw ==
nullptr) {
1034 cout <<
"ERROR: the connection to the UniConDa Database for the selected raw file info failed" << endl;
1041 tmp_file_id = stmt->GetInt(0);
1042 int tmp_period_number;
1043 tmp_period_number = stmt->GetInt(1);
1045 tmp_run_number = stmt->GetInt(2);
1046 int tmp_start_event;
1047 tmp_start_event = stmt->GetInt(3);
1049 tmp_end_event = stmt->GetInt(4);
1050 TDatime tmp_start_datetime;
1051 tmp_start_datetime = stmt->GetDatime(5);
1052 TDatime tmp_end_datetime;
1053 tmp_end_datetime = stmt->GetDatime(6);
1054 TString tmp_file_path;
1055 tmp_file_path = stmt->GetString(7);
1056 int tmp_event_count;
1057 tmp_event_count = stmt->GetInt(8);
1058 int64_t tmp_file_size;
1059 tmp_file_size = stmt->GetLong64(9);
1060 TString* tmp_file_hash;
1061 if (stmt->IsNull(10))
1062 tmp_file_hash =
nullptr;
1064 tmp_file_hash =
new TString(stmt->GetString(10));
1066 raw_files->Add((TObject*)
new UniRawFile(connDb, tmp_file_id, tmp_period_number, tmp_run_number, tmp_start_event,
1067 tmp_end_event, tmp_start_datetime, tmp_end_datetime, tmp_file_path,
1068 tmp_event_count, tmp_file_size, tmp_file_hash));
1083 if (connDb ==
nullptr)
1091 TString::Format(
"select file_id, period_number, run_number, start_event, end_event, start_datetime, "
1092 "end_datetime, file_path, event_count, file_size, file_hash "
1094 "where period_number = %d AND run_number = %d AND start_event = %d AND end_event = %d "
1095 "order by file_id desc",
1096 period_number, run_number, start_event, end_event);
1099 TString::Format(
"select file_id, period_number, run_number, start_event, end_event, start_datetime, "
1100 "end_datetime, file_path, event_count, file_size, file_hash "
1102 "where period_number = %d AND run_number = %d "
1103 "AND %d >= start_event AND %d <= end_event AND %d >= start_event AND %d <= end_event "
1104 "AND NOT (((%d - start_event) = 1) AND ((%d - end_event) = -1)) "
1105 "order by file_id desc",
1106 period_number, run_number, start_event, start_event, end_event, end_event,
1107 start_event, end_event);
1109 TSQLStatement* stmt = db_server->Statement(sql);
1112 if (!stmt->Process()) {
1113 cout <<
"ERROR: getting raw files for run " << period_number <<
":" << run_number <<
" and events "
1114 << start_event <<
"-" << end_event <<
" from the database has been failed" << endl;
1121 stmt->StoreResult();
1123 TObjArray* raw_files =
new TObjArray();
1124 while (stmt->NextResultRow()) {
1126 if (connRaw ==
nullptr) {
1127 cout <<
"ERROR: the connection to the UniConDa Database for the selected raw file info failed" << endl;
1134 tmp_file_id = stmt->GetInt(0);
1135 int tmp_period_number;
1136 tmp_period_number = stmt->GetInt(1);
1138 tmp_run_number = stmt->GetInt(2);
1139 int tmp_start_event;
1140 tmp_start_event = stmt->GetInt(3);
1142 tmp_end_event = stmt->GetInt(4);
1143 TDatime tmp_start_datetime;
1144 tmp_start_datetime = stmt->GetDatime(5);
1145 TDatime tmp_end_datetime;
1146 tmp_end_datetime = stmt->GetDatime(6);
1147 TString tmp_file_path;
1148 tmp_file_path = stmt->GetString(7);
1149 int tmp_event_count;
1150 tmp_event_count = stmt->GetInt(8);
1151 int64_t tmp_file_size;
1152 tmp_file_size = stmt->GetLong64(9);
1153 TString* tmp_file_hash;
1154 if (stmt->IsNull(10))
1155 tmp_file_hash =
nullptr;
1157 tmp_file_hash =
new TString(stmt->GetString(10));
1159 raw_files->Add((TObject*)
new UniRawFile(connDb, tmp_file_id, tmp_period_number, tmp_run_number, tmp_start_event,
1160 tmp_end_event, tmp_start_datetime, tmp_end_datetime, tmp_file_path,
1161 tmp_event_count, tmp_file_size, tmp_file_hash));
1176 if (connDb ==
nullptr)
1182 TString::Format(
"select file_id, period_number, run_number, start_event, end_event, start_datetime, "
1183 "end_datetime, file_path, event_count, file_size, file_hash "
1185 "where file_path like '%%%s%%' "
1186 "order by file_id desc",
1188 TSQLStatement* stmt = db_server->Statement(sql);
1191 if (!stmt->Process()) {
1192 cout <<
"ERROR: getting raw files for file path part " << path_part <<
" from the database has been failed" << endl;
1199 stmt->StoreResult();
1201 TObjArray* raw_files =
new TObjArray();
1202 while (stmt->NextResultRow()) {
1204 if (connRaw ==
nullptr) {
1205 cout <<
"ERROR: the connection to the UniConDa Database for the selected raw file info failed" << endl;
1212 tmp_file_id = stmt->GetInt(0);
1213 int tmp_period_number;
1214 tmp_period_number = stmt->GetInt(1);
1216 tmp_run_number = stmt->GetInt(2);
1217 int tmp_start_event;
1218 tmp_start_event = stmt->GetInt(3);
1220 tmp_end_event = stmt->GetInt(4);
1221 TDatime tmp_start_datetime;
1222 tmp_start_datetime = stmt->GetDatime(5);
1223 TDatime tmp_end_datetime;
1224 tmp_end_datetime = stmt->GetDatime(6);
1225 TString tmp_file_path;
1226 tmp_file_path = stmt->GetString(7);
1227 int tmp_event_count;
1228 tmp_event_count = stmt->GetInt(8);
1229 int64_t tmp_file_size;
1230 tmp_file_size = stmt->GetLong64(9);
1231 TString* tmp_file_hash;
1232 if (stmt->IsNull(10))
1233 tmp_file_hash =
nullptr;
1235 tmp_file_hash =
new TString(stmt->GetString(10));
1237 raw_files->Add((TObject*)
new UniRawFile(connDb, tmp_file_id, tmp_period_number, tmp_run_number, tmp_start_event,
1238 tmp_end_event, tmp_start_datetime, tmp_end_datetime, tmp_file_path,
1239 tmp_event_count, tmp_file_size, tmp_file_hash));
1254 ifstream raw_file(raw_file_path, ios::binary);
1256 cout <<
"ERROR: raw file could not be opened to calculate Adler32 checksum: " << raw_file_path << endl;
1260 uLong adler = adler32(0L, Z_NULL, 0);
1262 const size_t bufferSize = 65536;
1263 char buffer[bufferSize];
1264 while (raw_file.read(buffer, bufferSize) || raw_file.gcount() > 0)
1265 adler = adler32(adler, (
const Bytef*)buffer, raw_file.gcount());
1270 std::ostringstream hexStream;
1271 hexStream << std::hex << std::setw(8) << std::setfill(
'0') << (adler & 0xFFFFFFFF);
1273 return hexStream.str();
1275 TMD5* pMD5 = TMD5::FileChecksum(raw_file_path.Data());
1277 cout <<
"ERROR: raw file could not be opened to calculate MD5 checksum: " << raw_file_path << endl;
1282 TString strMD5(pMD5->AsString());
1284 delete pMD5
return strMD5;
static UniConnection * Open()
TSQLServer * GetSQLServer()
static int PrintAll()
print all raw files
int SetFileSize(int64_t file_size)
set file size of the current raw file
void Print()
print information about current raw file
int SetEndDatetime(TDatime end_datetime)
set end datetime of the current raw file
int SetFileHash(TString *file_hash)
set file hash of the current raw file
static int GetSumEventCount(int period_number, int run_number)
get event count for a given run as a sum for all raw files: if <0 - database operation error
static UniRawFile * GetRawFile(int file_id)
get raw file from the database
static int CheckRawFileExists(int file_id)
check raw file exists in the database: 1- true, 0 - false, <0 - database operation error
int SetRunNumber(int run_number)
set run number of the current raw file
int SetEventCount(int event_count)
set event count of the current raw file
int SetStartDatetime(TDatime start_datetime)
set start datetime of the current raw file
int SetStartEvent(int start_event)
set start event of the current raw file
static UniRawFile * CreateRawFile(int period_number, int run_number, int start_event, int end_event, TDatime start_datetime, TDatime end_datetime, TString file_path, int event_count, int64_t file_size, TString *file_hash)
add new raw file to the database
int SetEndEvent(int end_event)
set end event of the current raw file
int SetFilePath(TString file_path)
set file path of the current raw file
static TObjArray * GetRawFiles(int period_number, int run_number)
static int DeleteRawFile(int file_id)
delete raw file from the database
static TString CalculateFileHash(TString file_path)
int SetPeriodNumber(int period_number)
set period number of the current raw file