IBR-DTNSuite  0.12
FATFile.cpp
Go to the documentation of this file.
1 /*
2  * FATFile.h
3  *
4  * Copyright (C) 2013 IBR, TU Braunschweig
5  *
6  * Written-by: David Goltzsche <goltzsch@ibr.cs.tu-bs.de>
7  * Johannes Morgenroth <morgenroth@ibr.cs.tu-bs.de>
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Created on: Sep 23, 2013
22  */
23 
24 #include "io/FATFile.h"
25 #include "io/FatImageReader.h"
26 
27 namespace io
28 {
30  : ibrcommon::File("/", DT_DIR), _reader(reader)
31  {
32  }
33 
34  FATFile::FATFile(const FatImageReader &reader, const std::string &file_path)
35  : ibrcommon::File(file_path), _reader(reader)
36  {
37  update();
38  }
39 
41  {
42  }
43 
44  int FATFile::getFiles(std::list<FATFile> &files) const
45  {
46  try {
47  _reader.list(*this, files);
48  } catch (const FatImageReader::FatImageException &e) {
49  return e.getErrorCode();
50  }
51  return 0;
52  }
53 
54  int FATFile::remove(bool recursive)
55  {
56  // deletion is not supported
57  return 1;
58  }
59 
60  FATFile FATFile::get(const std::string &filename) const
61  {
62  const ibrcommon::File child = ibrcommon::File::get(filename);
63  return FATFile(_reader, child.getPath());
64  }
65 
67  {
69  return FATFile(_reader, parent.getPath());
70  }
71 
72  bool FATFile::exists() const
73  {
74  return _reader.exists(*this);
75  }
76 
78  {
79  if (_reader.isDirectory(*this)) {
80  _type = DT_DIR;
81  } else {
82  _type = DT_REG;
83  }
84  }
85 
86  size_t FATFile::size() const
87  {
88  return _reader.size(*this);
89  }
90 
91  time_t FATFile::lastaccess() const
92  {
93  return _reader.lastaccess(*this);
94  }
95 
96  time_t FATFile::lastmodify() const
97  {
98  return lastaccess();
99  }
100 
101  time_t FATFile::laststatchange() const
102  {
103  return lastaccess();
104  }
105 
107  {
108  return _reader;
109  }
110 }