Skip to content

Commit 71a301d

Browse files
committed
directory structuring, program code refactoring
1 parent 877e783 commit 71a301d

File tree

12 files changed

+105
-10
lines changed

12 files changed

+105
-10
lines changed

config.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[database]
2-
source=
3-
target=
2+
source=C:/Users/Kacper/Desktop/DBGRAPH/graphs/db/bin
3+
target=D:/test2

include/fileio.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <filesystem>
99
#include <vector>
1010
#include <map>
11+
#include <cassert>
1112
#include <boost/algorithm/string/join.hpp>
1213
#include <boost/property_tree/ptree.hpp>
1314
#include <boost/property_tree/ini_parser.hpp>
@@ -36,6 +37,10 @@ class FileIO {
3637
// file handling constants
3738
static const char* READ_BINARY;
3839
static const char* SPLIT_REGEX;
40+
41+
// graph files specific constants
42+
static const std::string FIRST_FROM_PAIR;
43+
static const std::string SECOND_FROM_PAIR;
3944
};
4045

4146
#endif //FILE_IO_H

include/filewriter.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ class FileWriter : public FileIO {
1111

1212
public:
1313
void create_required_directories(const std::string& target_path) const;
14-
15-
private:
1614
void create_directory(const std::string &parent_path, const std::string &directory_name) const;
15+
bool create_directories(const std::string &fullpath) const;
1716
};
1817

1918
#endif //FILE_WRITER_H

include/graphfile.hpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,23 @@ class GraphFile : public GraphFileBase {
1313
std::string group;
1414
std::string size_group;
1515
std::string ordinal;
16+
std::string pair_label;
17+
std::string pair_id;
1618

1719
public:
1820
GraphFile(std::filesystem::path& path, const std::string source_db_uri, const std::string target_db_uri);
1921
const std::string build_target_absolute() const;
22+
23+
// getters
24+
const std::string get_congruence() const;
25+
const std::string get_group() const;
26+
const std::string get_size_group() const;
27+
const std::string get_ordinal() const;
28+
const std::string get_pair_label() const;
29+
const std::string get_pair_id() const;
30+
31+
private:
32+
void set_pair_characteristics();
2033
};
2134

2235
#endif //GRAPH_FILE_DETAILS

include/graphfilebase.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
#define GRAPH_FILE_H
55

66
#include "filereader.hpp"
7+
#include "filewriter.hpp"
78

89
class GraphFileBase : public FileIO {
910

1011
private:
1112
FileReader reader;
13+
FileWriter writer;
1214

1315
std::string filename;
1416
std::string relative;
@@ -31,6 +33,7 @@ class GraphFileBase : public FileIO {
3133
const std::string get_source_db_uri() const;
3234
const std::string get_target_db_uri() const;
3335
const FileReader get_reader() const;
36+
const FileWriter get_writer() const;
3437

3538
// setters
3639
void set_target_absolute(std::string target_absolute);

include/graphio.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class GraphIO {
2525
static const int ALL_GRAPH_AMOUNT;
2626

2727
GraphIO();
28-
void do_preactions() const;
28+
void preactions() const;
29+
void postactions() const;
2930
void convert() const;
3031

3132
public:

src/application.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
void Application::run()
44
{
55
GraphIO graphio;
6-
graphio.do_preactions();
6+
graphio.preactions();
77
graphio.convert();
8+
graphio.postactions();
89
}

src/fileio.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,7 @@ const std::string FileIO::CSV_EXTENSION = ".csv";
1212
const std::string FileIO::UNDERSCORE = "_";
1313

1414
const char* FileIO::READ_BINARY = "rb";
15-
const char* FileIO::SPLIT_REGEX = "_.";
15+
const char* FileIO::SPLIT_REGEX = "_.";
16+
17+
const std::string FileIO::FIRST_FROM_PAIR = "A";
18+
const std::string FileIO::SECOND_FROM_PAIR = "B";

src/filewriter.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,15 @@ void FileWriter::create_directory(const std::string &parent_path, const std::str
1515
std::filesystem::create_directories(target_path);
1616
}
1717

18+
bool FileWriter::create_directories(const std::string &fullpath) const
19+
{
20+
std::filesystem::path target_fullpath(fullpath);
21+
if (std::filesystem::exists(target_fullpath) && std::filesystem::is_directory(fullpath)) {
22+
return false;
23+
}
24+
return std::filesystem::create_directories(target_fullpath);
25+
}
26+
1827
void FileWriter::create_required_directories(const std::string &target_path) const
1928
{
2029
std::vector<std::string> bvg_vec {

src/graphfile.cpp

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,67 @@ GraphFile::GraphFile(std::filesystem::path &path, const std::string source_db_ur
1010
this->group = filename_parts.at(1);
1111
this->size_group = filename_parts.at(2);
1212
this->ordinal = filename_parts.at(3);
13+
set_pair_characteristics();
1314

1415
this->set_target_filename(boost::algorithm::join(filename_parts, FileIO::UNDERSCORE).append(FileIO::CSV_EXTENSION));
1516
this->set_target_absolute(this->build_target_absolute());
1617
}
1718

1819
const std::string GraphFile::build_target_absolute() const
1920
{
20-
std::string target_uri = this->get_target_db_uri();
21-
return target_uri
21+
std::string base_uri = this->get_target_db_uri();
22+
23+
std::string target_path = base_uri
2224
.append(this->get_relative())
25+
.append(FileIO::UNIX_SEPARATOR)
26+
.append(this->get_size_group())
27+
.append(FileIO::UNIX_SEPARATOR)
28+
.append(this->get_pair_id());
29+
30+
this->get_writer().create_directories(target_path);
31+
32+
return target_path
2333
.append(FileIO::UNIX_SEPARATOR)
2434
.append(this->get_target_filename());
2535
}
36+
37+
// getters
38+
39+
const std::string GraphFile::get_congruence() const
40+
{
41+
return this->congruence;
42+
}
43+
44+
const std::string GraphFile::get_group() const
45+
{
46+
return this->group;
47+
}
48+
49+
const std::string GraphFile::get_size_group() const
50+
{
51+
return this->size_group;
52+
}
53+
54+
const std::string GraphFile::get_ordinal() const
55+
{
56+
return this->ordinal;
57+
}
58+
59+
const std::string GraphFile::get_pair_label() const
60+
{
61+
return this->pair_label;
62+
}
63+
64+
const std::string GraphFile::get_pair_id() const
65+
{
66+
return this->pair_id;
67+
}
68+
69+
// private methods
70+
71+
void GraphFile::set_pair_characteristics()
72+
{
73+
assert(this->ordinal.length() == 3);
74+
this->pair_label = this->ordinal.substr(0,1);
75+
this->pair_id = this->ordinal.substr(1);
76+
}

0 commit comments

Comments
 (0)