www.cemf.ir
objectFile.hpp
Go to the documentation of this file.
1 /*------------------------------- phasicFlow ---------------------------------
2  O C enter of
3  O O E ngineering and
4  O O M ultiscale modeling of
5  OOOOOOO F luid flow
6 ------------------------------------------------------------------------------
7  Copyright (C): www.cemf.ir
8  email: hamid.r.norouzi AT gmail.com
9 ------------------------------------------------------------------------------
10 Licence:
11  This file is part of phasicFlow code. It is a free software for simulating
12  granular and multiphase flows. You can redistribute it and/or modify it under
13  the terms of GNU General Public License v3 or any other later versions.
14 
15  phasicFlow is distributed to help others in their research in the field of
16  granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the
17  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 
19 -----------------------------------------------------------------------------*/
20 
21 #ifndef __objectFile_hpp__
22 #define __objectFile_hpp__
23 
24 #include "types.hpp"
25 #include "fileSystem.hpp"
26 
27 namespace pFlow
28 {
29 
31 {
32 public:
33 
34  enum readFlag
35  {
39  };
40 
41  enum writeFlag
42  {
45  };
46 
47 
48 private:
49 
52 
54  readFlag rFlag_ = readFlag::READ_NEVER;
55 
57  writeFlag wFlag_ = writeFlag::WRITE_NEVER;
58 
61 
64 
66  bool readWriteHeader_ = true;
67 
68 public:
69 
70 
71 
72  // constructors
73  explicit objectFile
74  (
75  const word& name
76  );
77 
78 
80  (
81  const word& name,
82  const fileSystem& localPath,
83  const readFlag& rf = readFlag::READ_NEVER,
84  const writeFlag& wf = writeFlag::WRITE_NEVER,
85  bool rwHeader = true
86  );
87 
88  // copy construct
89  objectFile( const objectFile & src) = default;
90 
91  objectFile( objectFile&& src) = default;
92 
93  objectFile& operator = (const objectFile & rhs) = default;
94 
95  objectFile& operator = (objectFile && rhs) = default;
96 
97 
98  virtual ~objectFile()=default;
99 
100  virtual
101  const word& name() const
102  {
103  return name_;
104  }
105 
106  virtual
107  const fileSystem& localPath()const
108  {
109  return localPath_;
110  }
111 
112  inline
114  {
115  return rFlag_;
116  }
117 
118  inline
120  {
121  return wFlag_;
122  }
123 
124  inline
125  bool isReadAlways()const
126  {
127  return rFlag_ == readFlag::READ_ALWAYS;
128  }
129 
130  inline
131  bool isReadNever()const
132  {
133  return rFlag_ == readFlag::READ_NEVER;
134  }
135 
136  inline
137  bool isReadIfPresent()const
138  {
139  return rFlag_ == readFlag::READ_IF_PRESENT;
140  }
141 
142  inline
143  bool isWriteAlways()const
144  {
145  return wFlag_ == writeFlag::WRITE_ALWAYS;
146  }
147 
148  inline
149  bool isWriteNever()const
150  {
151  return wFlag_ == writeFlag::WRITE_NEVER;
152  }
153 
154  inline
155  bool readWriteHeader()const
156  {
157  return readWriteHeader_;
158  }
159 
160 };
161 
162 
163 
164 }
165 
166 #endif //__objectFile_hpp__
pFlow::objectFile::~objectFile
virtual ~objectFile()=default
pFlow::objectFile::objectFile
objectFile(const word &name)
Definition: objectFile.cpp:24
pFlow::numBytesForReal__
const int numBytesForReal__
Definition: builtinTypes.hpp:66
types.hpp
pFlow::objectFile::isReadNever
bool isReadNever() const
Definition: objectFile.hpp:131
pFlow::objectFile::isWriteNever
bool isWriteNever() const
Definition: objectFile.hpp:149
pFlow::objectFile::readFlag
readFlag
Definition: objectFile.hpp:34
pFlow::objectFile::isReadAlways
bool isReadAlways() const
Definition: objectFile.hpp:125
pFlow::word
std::string word
Definition: builtinTypes.hpp:64
pFlow::objectFile::localPath_
fileSystem localPath_
Local path of entity.
Definition: objectFile.hpp:60
pFlow::objectFile::WRITE_ALWAYS
@ WRITE_ALWAYS
Definition: objectFile.hpp:43
pFlow::objectFile::writeFlag
writeFlag
Definition: objectFile.hpp:41
fileSystem.hpp
pFlow
Definition: demGeometry.hpp:27
pFlow::objectFile::WRITE_NEVER
@ WRITE_NEVER
Definition: objectFile.hpp:44
pFlow::fileSystem
Manages file pathes, manupulate and combines them.
Definition: fileSystem.hpp:71
pFlow::objectFile::rFlag_
readFlag rFlag_
Read flag.
Definition: objectFile.hpp:54
pFlow::objectFile::operator=
objectFile & operator=(const objectFile &rhs)=default
pFlow::objectFile::name
virtual const word & name() const
Definition: objectFile.hpp:101
pFlow::objectFile::READ_ALWAYS
@ READ_ALWAYS
Definition: objectFile.hpp:36
pFlow::objectFile::readWriteHeader
bool readWriteHeader() const
Definition: objectFile.hpp:155
pFlow::objectFile
Definition: objectFile.hpp:30
pFlow::objectFile::readWriteHeader_
bool readWriteHeader_
Does the objectFile read & write the header?
Definition: objectFile.hpp:66
pFlow::objectFile::isWriteAlways
bool isWriteAlways() const
Definition: objectFile.hpp:143
pFlow::objectFile::READ_NEVER
@ READ_NEVER
Definition: objectFile.hpp:37
pFlow::objectFile::isReadIfPresent
bool isReadIfPresent() const
Definition: objectFile.hpp:137
pFlow::objectFile::numBytesForReal_
int numBytesForReal_
Number of bytes used for writing/reading real variable (used for binray)
Definition: objectFile.hpp:63
pFlow::objectFile::localPath
virtual const fileSystem & localPath() const
Definition: objectFile.hpp:107
pFlow::objectFile::READ_IF_PRESENT
@ READ_IF_PRESENT
Definition: objectFile.hpp:38
pFlow::objectFile::name_
word name_
Name of the entity.
Definition: objectFile.hpp:51
pFlow::objectFile::wFlag
writeFlag wFlag() const
Definition: objectFile.hpp:119
pFlow::objectFile::wFlag_
writeFlag wFlag_
Write flag.
Definition: objectFile.hpp:57
pFlow::objectFile::rFlag
readFlag rFlag() const
Definition: objectFile.hpp:113