1*8a106958SDamjan Jovanovic /************************************************************** 2*8a106958SDamjan Jovanovic * 3*8a106958SDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one 4*8a106958SDamjan Jovanovic * or more contributor license agreements. See the NOTICE file 5*8a106958SDamjan Jovanovic * distributed with this work for additional information 6*8a106958SDamjan Jovanovic * regarding copyright ownership. The ASF licenses this file 7*8a106958SDamjan Jovanovic * to you under the Apache License, Version 2.0 (the 8*8a106958SDamjan Jovanovic * "License"); you may not use this file except in compliance 9*8a106958SDamjan Jovanovic * with the License. You may obtain a copy of the License at 10*8a106958SDamjan Jovanovic * 11*8a106958SDamjan Jovanovic * http://www.apache.org/licenses/LICENSE-2.0 12*8a106958SDamjan Jovanovic * 13*8a106958SDamjan Jovanovic * Unless required by applicable law or agreed to in writing, 14*8a106958SDamjan Jovanovic * software distributed under the License is distributed on an 15*8a106958SDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*8a106958SDamjan Jovanovic * KIND, either express or implied. See the License for the 17*8a106958SDamjan Jovanovic * specific language governing permissions and limitations 18*8a106958SDamjan Jovanovic * under the License. 19*8a106958SDamjan Jovanovic * 20*8a106958SDamjan Jovanovic *************************************************************/ 21*8a106958SDamjan Jovanovic 22*8a106958SDamjan Jovanovic 23*8a106958SDamjan Jovanovic 24*8a106958SDamjan Jovanovic #ifndef CSV_PLOCDIR_HXX 25*8a106958SDamjan Jovanovic #define CSV_PLOCDIR_HXX 26*8a106958SDamjan Jovanovic 27*8a106958SDamjan Jovanovic 28*8a106958SDamjan Jovanovic // USED SERVICES 29*8a106958SDamjan Jovanovic // BASE CLASSES 30*8a106958SDamjan Jovanovic #include <cosv/persist.hxx> 31*8a106958SDamjan Jovanovic // COMPONENTS 32*8a106958SDamjan Jovanovic #include <cosv/ploc.hxx> 33*8a106958SDamjan Jovanovic // PARAMETERS 34*8a106958SDamjan Jovanovic 35*8a106958SDamjan Jovanovic namespace csv 36*8a106958SDamjan Jovanovic { 37*8a106958SDamjan Jovanovic namespace ploc 38*8a106958SDamjan Jovanovic { 39*8a106958SDamjan Jovanovic 40*8a106958SDamjan Jovanovic class DirectoryChain; 41*8a106958SDamjan Jovanovic 42*8a106958SDamjan Jovanovic enum E_Recursivity 43*8a106958SDamjan Jovanovic { 44*8a106958SDamjan Jovanovic flat, 45*8a106958SDamjan Jovanovic recursive 46*8a106958SDamjan Jovanovic }; 47*8a106958SDamjan Jovanovic 48*8a106958SDamjan Jovanovic class Directory : public Persistent 49*8a106958SDamjan Jovanovic { 50*8a106958SDamjan Jovanovic public: 51*8a106958SDamjan Jovanovic // LIFECYCLE 52*8a106958SDamjan Jovanovic Directory(); 53*8a106958SDamjan Jovanovic Directory( 54*8a106958SDamjan Jovanovic const Path & i_rLocation ); 55*8a106958SDamjan Jovanovic Directory( 56*8a106958SDamjan Jovanovic const char * i_rLocation ); 57*8a106958SDamjan Jovanovic Directory( 58*8a106958SDamjan Jovanovic const String & i_rLocation ); 59*8a106958SDamjan Jovanovic Directory( 60*8a106958SDamjan Jovanovic const Directory & i_rDir ); 61*8a106958SDamjan Jovanovic virtual ~Directory(); 62*8a106958SDamjan Jovanovic 63*8a106958SDamjan Jovanovic // OPERATORS 64*8a106958SDamjan Jovanovic Directory & operator+=( 65*8a106958SDamjan Jovanovic const String & i_sName ); 66*8a106958SDamjan Jovanovic Directory & operator+=( 67*8a106958SDamjan Jovanovic const DirectoryChain & 68*8a106958SDamjan Jovanovic i_sDirChain ); 69*8a106958SDamjan Jovanovic Directory & operator-=( 70*8a106958SDamjan Jovanovic uintt i_nLevels ); 71*8a106958SDamjan Jovanovic 72*8a106958SDamjan Jovanovic // OPERATIONS 73*8a106958SDamjan Jovanovic bool PhysicalCreate( 74*8a106958SDamjan Jovanovic bool i_bCreateParentsIfNecessary = true ) const; 75*8a106958SDamjan Jovanovic 76*8a106958SDamjan Jovanovic // INQUIRY 77*8a106958SDamjan Jovanovic void GetContainedDirectories( 78*8a106958SDamjan Jovanovic StringVector & o_rResult ) const; 79*8a106958SDamjan Jovanovic /** @param i_sFilter 80*8a106958SDamjan Jovanovic Currently only filters of the form "*.ending" or "*.*" 81*8a106958SDamjan Jovanovic (the default) are processed correctly under UNIX. Under WNT this 82*8a106958SDamjan Jovanovic restriction does not apply. 83*8a106958SDamjan Jovanovic */ 84*8a106958SDamjan Jovanovic void GetContainedFiles( 85*8a106958SDamjan Jovanovic StringVector & o_rResult, 86*8a106958SDamjan Jovanovic const char * i_sFilter = "*.*", 87*8a106958SDamjan Jovanovic E_Recursivity i_eRecursivity = flat ) const; 88*8a106958SDamjan Jovanovic private: 89*8a106958SDamjan Jovanovic // Interface Persistent: 90*8a106958SDamjan Jovanovic virtual const Path & 91*8a106958SDamjan Jovanovic inq_MyPath() const; 92*8a106958SDamjan Jovanovic 93*8a106958SDamjan Jovanovic // Locals: 94*8a106958SDamjan Jovanovic /** @return 95*8a106958SDamjan Jovanovic true, if parent(!) directory exists or could be created. 96*8a106958SDamjan Jovanovic false, if this is a root directory. 97*8a106958SDamjan Jovanovic */ 98*8a106958SDamjan Jovanovic bool Check_Parent() const; 99*8a106958SDamjan Jovanovic bool PhysicalCreate_Dir( 100*8a106958SDamjan Jovanovic const char * i_sStr ) const; 101*8a106958SDamjan Jovanovic // DATA 102*8a106958SDamjan Jovanovic Path aPath; 103*8a106958SDamjan Jovanovic }; 104*8a106958SDamjan Jovanovic 105*8a106958SDamjan Jovanovic 106*8a106958SDamjan Jovanovic 107*8a106958SDamjan Jovanovic } // namespace ploc 108*8a106958SDamjan Jovanovic } // namespace csv 109*8a106958SDamjan Jovanovic 110*8a106958SDamjan Jovanovic 111*8a106958SDamjan Jovanovic 112*8a106958SDamjan Jovanovic #endif 113