Skip to content

Commit 76fc0d6

Browse files
ChristianTackeGSIdennisklein
authored andcommitted
chore: Use value semantics in FairParAsciiFileIo
1 parent 0dd66e3 commit 76fc0d6

3 files changed

Lines changed: 13 additions & 52 deletions

File tree

fairroot/parbase/FairParAsciiFileIo.cxx

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,6 @@
3434
using std::cerr;
3535
using std::cout;
3636
using std::endl;
37-
using std::filebuf;
38-
using std::ios;
39-
40-
FairParAsciiFileIo::FairParAsciiFileIo()
41-
: FairParIo()
42-
, file(nullptr)
43-
{}
44-
45-
FairParAsciiFileIo::~FairParAsciiFileIo()
46-
{
47-
// default destructor closes an open file and deletes list of I/Os
48-
close();
49-
}
5037

5138
void FairParAsciiFileIo::ActivateSelf()
5239
{
@@ -68,15 +55,13 @@ Bool_t FairParAsciiFileIo::open(const Text_t* fname, const Text_t* status)
6855
<< "\n writing state : out\n reading state : in \nopen aborted \n";
6956
return kFALSE;
7057
}
71-
file = new std::fstream();
7258
if (strcmp(status, "in") == 0) {
73-
file->open(fname, ios::in);
59+
file.open(fname, std::ios::in);
7460
};
7561
if (strcmp(status, "out") == 0) {
76-
file->open(fname, ios::out);
62+
file.open(fname, std::ios::out);
7763
};
78-
filebuf* buf = file->rdbuf();
79-
if (file && (buf->is_open() == 1)) {
64+
if (file.is_open()) {
8065
filename = fname;
8166
ActivateSelf();
8267
FairRuntimeDb::instance()->activateParIo(this);
@@ -129,12 +114,7 @@ void FairParAsciiFileIo::MergeFiles(const char* fname, const TList* fnamelist)
129114

130115
void FairParAsciiFileIo::close()
131116
{
132-
// closes the file and deletes the detector I/Os
133-
if (file) {
134-
file->close();
135-
delete file;
136-
file = 0;
137-
}
117+
file.close();
138118
FairParIo::close();
139119
}
140120

@@ -148,9 +128,3 @@ void FairParAsciiFileIo::print()
148128
cout << "No file open\n";
149129
}
150130
}
151-
152-
std::fstream* FairParAsciiFileIo::getFile()
153-
{
154-
// returns the file pointer
155-
return file;
156-
}

fairroot/parbase/FairParAsciiFileIo.h

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,17 @@
1313
#include <Rtypes.h> // for Bool_t, Text_t, etc
1414
#include <fstream> // for fstream, etc
1515

16-
class TList;
17-
1816
class FairParAsciiFileIo : public FairParIo
1917
{
20-
protected:
21-
std::fstream* file; // pointer to a file
22-
2318
public:
24-
FairParAsciiFileIo();
19+
FairParAsciiFileIo() = default;
20+
FairParAsciiFileIo(const FairParAsciiFileIo&) = delete;
21+
FairParAsciiFileIo& operator=(const FairParAsciiFileIo&) = delete;
2522

2623
/**
2724
* default destructor closes an open file and deletes list of I/Os
2825
*/
29-
~FairParAsciiFileIo() override;
26+
~FairParAsciiFileIo() override = default;
3027

3128
/**
3229
* \brief Opens file
@@ -64,23 +61,15 @@ class FairParAsciiFileIo : public FairParIo
6461
void close() override;
6562

6663
// returns kTRUE if file is open
67-
Bool_t check() override
68-
{
69-
if (file) {
70-
return (file->rdbuf()->is_open() == 1);
71-
} else {
72-
return kFALSE;
73-
}
74-
}
64+
Bool_t check() override { return file.is_open(); }
7565

7666
// prints information about the file and the detector I/Os
7767
void print() override;
7868

79-
std::fstream* getFile();
69+
std::fstream* getFile() { return &file; }
8070

8171
private:
82-
FairParAsciiFileIo(const FairParAsciiFileIo&);
83-
FairParAsciiFileIo& operator=(const FairParAsciiFileIo&);
72+
std::fstream file{};
8473
void ActivateSelf();
8574

8675
ClassDefOverride(FairParAsciiFileIo, 0); // Parameter I/O from ASCII files

fairroot/parbase/FairParIo.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ class FairParIo : public TObject
2525

2626
public:
2727
FairParIo();
28+
FairParIo(const FairParIo&) = delete;
29+
FairParIo& operator=(const FairParIo&) = delete;
2830
~FairParIo() override;
2931
virtual FairDetParIo* getDetParIo(const Text_t*);
3032
virtual void setDetParIo(FairDetParIo*);
@@ -57,10 +59,6 @@ class FairParIo : public TObject
5759
void setAutoWritable(Bool_t f = kTRUE) { autoWritable = f; }
5860
Bool_t isAutoWritable() const { return autoWritable; }
5961

60-
private:
61-
FairParIo(const FairParIo&);
62-
FairParIo& operator=(const FairParIo&);
63-
6462
ClassDefOverride(FairParIo, 0); // Base class for all parameter I/Os
6563
};
6664

0 commit comments

Comments
 (0)