as_sfile.cpp

changeset 1
d64aaa7d146f
child 3
c1941114ca88
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/as_sfile.cpp	Fri Nov 28 11:21:08 2008 +0100
     1.3 @@ -0,0 +1,64 @@
     1.4 +//
     1.5 +//  OSSP asgui - Accounting system graphical user interface
     1.6 +//  Copyright (c) 2002-2004 The OSSP Project (http://www.ossp.org/)
     1.7 +//  Copyright (c) 2002-2004 Ralf S. Engelschall <rse@engelschall.com>
     1.8 +//  Copyright (c) 2002-2004 Michael Schloh von Bennewitz <michael@schloh.com>
     1.9 +//  Copyright (c) 2002-2004 Cable & Wireless Telecommunications Services GmbH
    1.10 +//
    1.11 +//  This file is part of OSSP asgui, an accounting system graphical user
    1.12 +//  interface which can be found at http://www.ossp.org/pkg/tool/asgui/.
    1.13 +//
    1.14 +//  Permission to use, copy, modify, and distribute this software for
    1.15 +//  any purpose with or without fee is hereby granted, provided that
    1.16 +//  the above copyright notice and this permission notice appear in all
    1.17 +//  copies.
    1.18 +//
    1.19 +//  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
    1.20 +//  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    1.21 +//  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    1.22 +//  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
    1.23 +//  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    1.24 +//  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    1.25 +//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    1.26 +//  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    1.27 +//  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    1.28 +//  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    1.29 +//  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    1.30 +//  SUCH DAMAGE.
    1.31 +//
    1.32 +//  as_sfile.cpp: ISO C++ implementation
    1.33 +//
    1.34 +
    1.35 +#include "as_sfile.h"
    1.36 +#include "as_except.h"
    1.37 +
    1.38 +
    1.39 +//
    1.40 +// Serialize a backup of an incoming file object
    1.41 +//
    1.42 +void Simplefile::makeBackup(void)
    1.43 +{
    1.44 +    QFile Filein;           // Input readonly file
    1.45 +    QFile Filebak;          // Backup writeonly file
    1.46 +    QString Fname;          // Filename of input file
    1.47 +    QTextStream Streamin;   // Stream to read from (Filein)
    1.48 +    QTextStream Streambak;  // Stream to write to (Filebak)
    1.49 +
    1.50 +    try {
    1.51 +        if(!this->exists())                 // Conditionally short circuit if
    1.52 +            return;                         // file to backup does not exist
    1.53 +        Fname = this->name();               // Copy filename from original
    1.54 +        Filein.setName(Fname);              // Set filename of original
    1.55 +        Filein.open(IO_ReadOnly);           // Open original read-only
    1.56 +        Filebak.setName(Fname + ".bak");    // Set filename of backup
    1.57 +        Filebak.open(IO_WriteOnly);         // Open backup write-only
    1.58 +        Streamin.setDevice(&Filein);        // Set incoming stream
    1.59 +        Streambak.setDevice(&Filebak);      // Set outgoing stream
    1.60 +        Streambak << Streamin.read();       // Do actual writing
    1.61 +        Filein.close();                     // Close original
    1.62 +        Filebak.close();                    // Close backup
    1.63 +    }
    1.64 +    catch (Genexcept& Genex) {
    1.65 +        Genex.reportErr();
    1.66 +    }
    1.67 +}

mercurial