diff options
Diffstat (limited to 'cosv/source/storage/file.cxx')
-rw-r--r-- | cosv/source/storage/file.cxx | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/cosv/source/storage/file.cxx b/cosv/source/storage/file.cxx deleted file mode 100644 index c871fd74..00000000 --- a/cosv/source/storage/file.cxx +++ /dev/null @@ -1,203 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <precomp.h> -#include <cosv/file.hxx> - -// NOT FULLY DECLARED SERVICES - - -namespace csv -{ - - -File::File( const ploc::Path & i_rLocation, - uintt i_nMode ) - : aPath(i_rLocation), - pStream(0), - nMode(i_nMode), - eLastIO(io_none) -{ -} - -File::File( const char * i_sLocation, - uintt i_nMode ) - : aPath(i_sLocation), - pStream(0), - nMode(i_nMode), - eLastIO(io_none) -{ -} - -File::File( const String & i_sLocation, - uintt i_nMode ) - : aPath(i_sLocation), - pStream(0), - nMode(i_nMode), - eLastIO(io_none) -{ -} - -File::~File() -{ - if ( inq_is_open() ) - close(); -} - -uintt -File::do_read( void * out_pDest, - uintt i_nNrofBytes ) -{ - if ( NOT inq_is_open() ) - return 0; - - if ( eLastIO == io_write ) - ::fseek( pStream, 0, SEEK_CUR ); - uintt ret = position(); - int iRet= ::fread( out_pDest, 1, i_nNrofBytes, pStream ); - if ( iRet < 0 ) { - fprintf(stderr, "warning: read failed in %s line %d \n", __FILE__, __LINE__); - } - ret = position() - ret; - - eLastIO = io_read; - return ret; -} - -bool -File::inq_eod() const -{ - if ( NOT inq_is_open() ) - return true; - return feof(pStream) != 0; -} - -uintt -File::do_write( const void * i_pSrc, - uintt i_nNrofBytes ) -{ - if ( NOT inq_is_open() ) - return 0; - - if ( eLastIO == io_write ) - ::fseek( pStream, 0, SEEK_CUR ); - uintt ret = position(); - ::fwrite( i_pSrc, 1, i_nNrofBytes, pStream ); - ret = position() - ret; - - eLastIO = io_write; - return ret; -} - -uintt -File::do_seek( intt i_nDistance, - seek_dir i_eStartPoint ) -{ - if ( NOT inq_is_open() ) - return uintt(-1); - - static int eSearchDir[3] = { SEEK_SET, SEEK_CUR, SEEK_END }; - - ::fseek( pStream, - intt(i_nDistance), - eSearchDir[i_eStartPoint] ); - return position(); -} - -uintt -File::inq_position() const -{ - if ( inq_is_open() ) - return uintt( ::ftell(pStream) ); - else - return uintt(-1); -} - -bool -File::do_open( uintt i_nOpenMode ) -{ - if ( inq_is_open() ) - { - if ( i_nOpenMode == 0 OR i_nOpenMode == nMode ) - return true; - close(); - } - - if ( i_nOpenMode != 0 ) - nMode = i_nOpenMode; - - const char * sFacadeMode = ""; - switch ( nMode ) - { - case CFM_RW: sFacadeMode = "r+b"; - break; - case CFM_CREATE: sFacadeMode = "w+b"; - break; - case CFM_READ: sFacadeMode = "rb"; - break; - default: - sFacadeMode = "rb"; - } - - pStream = ::fopen( StrPath(), sFacadeMode ); - if ( pStream == 0 AND nMode == CFM_RW ) - { - sFacadeMode = "w+b"; - pStream = ::fopen( StrPath(), sFacadeMode ); - } - - return pStream != 0; -} - -void -File::do_close() -{ - if ( inq_is_open() ) - { - ::fclose(pStream); - pStream = 0; - } - eLastIO = io_none; -} - -bool -File::inq_is_open() const -{ - return pStream != 0; -} - -const ploc::Path & -File::inq_MyPath() const -{ - return aPath; -} - - -} // namespace csv - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |