ONPOSIX
2.0
Main Page
Namespaces
Classes
Files
File List
File Members
ONPOSIX
OnPosix Library
Namespaces
Classes
Files
File List
include
AbstractDescriptorReader.hpp
AbstractThread.hpp
Assert.hpp
Buffer.hpp
DescriptorsMonitor.hpp
DgramSocketClientDescriptor.hpp
DgramSocketServerDescriptor.hpp
FifoDescriptor.hpp
FileDescriptor.hpp
Logger.hpp
Pipe.hpp
PosixCondition.hpp
PosixDescriptor.hpp
PosixMutex.hpp
PosixPrioritySharedQueue.hpp
PosixSharedQueue.hpp
Process.hpp
SimpleThread.hpp
StreamSocketClientDescriptor.hpp
StreamSocketServer.hpp
StreamSocketServerDescriptor.hpp
Time.hpp
src
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