ONPOSIX
2.0
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Enumerator
Friends
Macros
Pages
FileDescriptor.hpp
Go to the documentation of this file.
1
/*
2
* FileDescriptor.hpp
3
*
4
* Copyright (C) 2012 Evidence Srl - www.evidence.eu.com
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Library General Public
8
* License as published by the Free Software Foundation; either
9
* version 2 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Library General Public License for more details.
15
*
16
* You should have received a copy of the GNU Library General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef FILEDESCRIPTOR_HPP_
22
#define FILEDESCRIPTOR_HPP_
23
24
#include "
PosixDescriptor.hpp
"
25
26
namespace
onposix {
27
28
/**
29
* \brief Abstraction of a file descriptor.
30
*
31
* This is an abstract class for the concept of file descriptor.
32
* The descriptor corresponds to an open file.
33
*
34
* Example of usage:
35
* \code
36
* FileDescriptor fd ("/tmp/myfile", O_RDONLY);
37
* Buffer b (10);
38
* fd.read (b, b.getSize());
39
* \endcode
40
*/
41
class
FileDescriptor
:
public
PosixDescriptor
{
42
43
public
:
44
FileDescriptor
(
const
std::string& name,
const
int
flags);
45
FileDescriptor
(
const
std::string& name,
const
int
flags,
46
const
mode_t mode);
47
int
getLength
();
48
49
/**
50
* \brief Method to reposition at a certain offset
51
*
52
* @param offset Offset from the beginning of file
53
* @return the actual offset location in case of success; -1 in case of
54
* error
55
*/
56
inline
int
lseek
(
int
offset) {
57
return ::lseek
(
fd_
, offset, SEEK_SET);
58
}
59
60
61
/**
62
* \brief Sync the descriptor
63
*
64
* Method to call fsync on the descriptor. Usually after a write
65
* operation.
66
*/
67
inline
void
sync
(){
68
::fsync(
fd_
);
69
}
70
};
71
72
}
/* onposix */
73
74
#endif
/* FILEDESCRIPTOR_HPP_ */
include
FileDescriptor.hpp
Generated on Wed Apr 30 2014 15:27:24 for ONPOSIX by
1.8.1.2