1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #include <precomp.h> 29 #include <cosv/persist.hxx> 30 31 // NOT FULLY DECLARED SERVICES 32 #include <cosv/streamstr.hxx> 33 #include <cosv/ploc.hxx> 34 35 36 #ifdef WNT 37 #include <io.h> 38 39 namespace csv 40 { 41 namespace ploc 42 { 43 44 bool 45 Persistent::Exists() const 46 { 47 return access( StrPath(), 00) == 0; 48 } 49 50 } // namespace ploc 51 } // namespace csv 52 53 54 #elif defined(UNX) 55 #include <unistd.h> 56 57 /* 58 #ifndef __SUNPRO_CC 59 #include <unistd.h> 60 #else 61 #define F_OK 0 // Test for existence of File 62 extern int access(const char *, int); 63 #endif 64 */ 65 66 namespace csv 67 { 68 namespace ploc 69 { 70 71 bool 72 Persistent::Exists() const 73 { 74 return access( StrPath(), F_OK ) == 0; 75 } 76 77 78 } // namespace ploc 79 } // namespace csv 80 81 #else 82 #error For using csv::ploc there has to be defined: WNT or UNX. 83 #endif 84 85 namespace csv 86 { 87 namespace ploc 88 { 89 90 const char * 91 Persistent::StrPath() const 92 { 93 if (sPath.empty() ) 94 { 95 #ifndef CSV_NO_MUTABLE 96 StreamStr & rsPath = sPath; 97 #else 98 StreamStr & rsPath = const_cast< StreamStr& >(sPath); 99 #endif 100 rsPath.seekp(0); 101 rsPath << MyPath(); 102 if (MyPath().IsDirectory()) 103 rsPath.pop_back(1); // Remove closing delimiter. 104 } 105 return sPath.c_str(); 106 } 107 108 } // namespace ploc 109 } // namespace csv 110 111 112 113 114