Bump for 3.6-28
[LibreOffice.git] / ucb / source / ucp / file / filrec.hxx
blobd1ba2e2ea7b44285dcb2dbae6fcde0e92623dee3
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #ifndef _FILREC_HXX_
30 #define _FILREC_HXX_
32 #include <osl/file.hxx>
34 namespace fileaccess {
36 class ReconnectingFile
38 ::osl::File m_aFile;
40 sal_uInt32 m_nFlags;
41 sal_Bool m_bFlagsSet;
43 sal_Bool m_bDisconnect;
45 ReconnectingFile( ReconnectingFile& );
47 ReconnectingFile& operator=( ReconnectingFile& );
49 public:
51 ReconnectingFile( const ::rtl::OUString& aFileURL )
52 : m_aFile( aFileURL )
53 , m_nFlags( 0 )
54 , m_bFlagsSet( sal_False )
55 , m_bDisconnect( sal_False )
58 ~ReconnectingFile()
60 close();
63 void disconnect();
64 sal_Bool reconnect();
66 ::osl::FileBase::RC open( sal_uInt32 uFlags );
68 ::osl::FileBase::RC close();
70 ::osl::FileBase::RC setPos( sal_uInt32 uHow, sal_Int64 uPos );
72 ::osl::FileBase::RC getPos( sal_uInt64& uPos );
74 ::osl::FileBase::RC setSize( sal_uInt64 uSize );
76 ::osl::FileBase::RC getSize( sal_uInt64 &rSize );
78 ::osl::FileBase::RC read( void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64& rBytesRead );
80 ::osl::FileBase::RC write(const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64& rBytesWritten);
82 ::osl::FileBase::RC sync() const;
85 } // namespace fileaccess
86 #endif // _FILREC_HXX_
88 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */