OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
checksum_list.h
Go to the documentation of this file.
1//Copyright> OpenRadioss
2//Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3//Copyright>
4//Copyright> This program is free software: you can redistribute it and/or modify
5//Copyright> it under the terms of the GNU Affero General Public License as published by
6//Copyright> the Free Software Foundation, either version 3 of the License, or
7//Copyright> (at your option) any later version.
8//Copyright>
9//Copyright> This program is distributed in the hope that it will be useful,
10//Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11//Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12//Copyright> GNU Affero General Public License for more details.
13//Copyright>
14//Copyright> You should have received a copy of the GNU Affero General Public License
15//Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16//Copyright>
17//Copyright>
18//Copyright> Commercial Alternative: Altair Radioss Software
19//Copyright>
20//Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21//Copyright> software under a commercial license. Contact Altair to discuss further if the
22//Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23#include <iostream>
24#include <iomanip>
25#include <fstream>
26#include <string>
27#include <list>
28#include <filesystem>
29#include <algorithm>
30#include <stdexcept>
31#include <map>
32#include <checksum.h>
33#include <vector>
34
35// C calls fortran
36#define _FCALL
37
38#ifdef _WIN64
39#define write_out_file WRITE_OUT_FILE
40#define grab_checksums _FCALL GRAB_CHECKSUMS
41#else
42#include <dirent.h>
43#define write_out_file write_out_file_
44#define grab_checksums grab_checksums_
45#endif
46
47extern "C" {
48 void write_out_file(int * fd,const char * line,int * len_line);
49 void grab_checksums(int *fd,char *input,int *leni,char *path,int *lenp);
50}
51
52
54
55 private:
56
57 // Debug flag
58 // Set to 1 to enable debug mode, 0 to disable it
59#ifdef DEBUG
60 int debug=1;
61#else
62 int debug=0;
63 #endif
64
65 // List of files to be processed sorted o, file_list
66 std::list<std::string> deck_file_list; // deck files
67 std::list<std::string> out_file_list; // .out files
68 std::list<std::string> th_file_list; // .thy files
69 std::list<std::string> anim_file_list; // rootnameAxxx
70 std::list<std::string> checksum_file_list; // .checksum files
71 std::map<std::string,std::string> file_checksum_list; // File checksums : Filename, checksum
72 std::list<std::tuple<std::string,std::list<std::string>>> checksum_list ; // extracted checksum list from the output files : Filename, checksum list
73
74 // -----------------------------------------------------------------------------------
75 // Tool : get directory path from a file path
76 // -----------------------------------------------------------------------------------
77 bool is_integer(const std::string s);
78 void sort_in_lists(std::string file,std::string rootname);
79 std::string format_as_4_digits(int number);
80 std::string format_as_3_digits(int number);
81 void remove_cr(std::string &line);
82 std::string separator();
83 int compare_lists(std::list<std::string> list1, std::list<std::string> list2);
84 bool is_file_valid(std::string file);
85 void file_list(std::string directory,std::string rootname);
86 void parse_output_files(std::string directory, std::string rootname);
87 void parse_animation_files(std::string directory, std::string rootname);
88 void parse_th_files(std::string directory, std::string rootname);
89 void parse_checksum_files(std::string directory, std::string rootname);
90
91 public:
92 std::list<std::tuple<std::string,std::list<std::string>>> chk_list(std::string input,std::string directory);
93 std::string get_path(const std::string& filepath) ;
95 };
96
97
#define write_out_file
#define grab_checksums
void sort_in_lists(std::string file, std::string rootname)
void parse_output_files(std::string directory, std::string rootname)
std::map< std::string, std::string > file_checksum_list
bool is_integer(const std::string s)
std::list< std::tuple< std::string, std::list< std::string > > > chk_list(std::string input, std::string directory)
std::list< std::string > th_file_list
bool is_file_valid(std::string file)
void remove_cr(std::string &line)
std::string format_as_3_digits(int number)
std::list< std::string > checksum_file_list
void parse_th_files(std::string directory, std::string rootname)
void parse_animation_files(std::string directory, std::string rootname)
std::string separator()
std::list< std::string > anim_file_list
std::list< std::tuple< std::string, std::list< std::string > > > checksum_list
std::string format_as_4_digits(int number)
std::list< std::string > out_file_list
int compare_lists(std::list< std::string > list1, std::list< std::string > list2)
std::list< std::string > deck_file_list
std::string get_path(const std::string &filepath)
void file_list(std::string directory, std::string rootname)
void parse_checksum_files(std::string directory, std::string rootname)