Apache log4cxx Version 0.13.0
file.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _LOG4CXX_FILE_H
19#define _LOG4CXX_FILE_H
20
21#include <log4cxx/logger.h>
22#include <log4cxx/logstring.h>
23
24#if defined(_MSC_VER)
25 #pragma warning ( push )
26 #pragma warning ( disable: 4251 )
27#endif
28
29extern "C" {
30 struct apr_file_t;
31 struct apr_finfo_t;
32}
33
34namespace log4cxx
35{
36namespace helpers
37{
38class Transcoder;
39class Pool;
40}
41
45class LOG4CXX_EXPORT File
46{
47 public:
56 File(const char* path);
61 File(const std::string& path);
62#if LOG4CXX_WCHAR_T_API
67 File(const wchar_t* path);
72 File(const std::wstring& path);
73#endif
74#if LOG4CXX_UNICHAR_API
79 File(const UniChar* path);
84 File(const std::basic_string<UniChar>& path);
85#endif
86#if LOG4CXX_CFSTRING_API
91 File(const CFStringRef& path);
92#endif
96 File(const File& src);
100 File& operator=(const File& src);
105
123 log4cxx_time_t lastModified(log4cxx::helpers::Pool& p) const;
138
147 log4cxx_status_t open(apr_file_t** file, int flags,
148 int perm, log4cxx::helpers::Pool& p) const;
149
155 std::vector<LogString> list(log4cxx::helpers::Pool& p) const;
156
169 bool renameTo(const File& dest, log4cxx::helpers::Pool& p) const;
170
183
184 private:
185 LogString path;
186 static char* convertBackSlashes(char*);
187 char* getPath(log4cxx::helpers::Pool& p) const;
188};
189} // namespace log4cxx
190
191
192#if defined(_MSC_VER)
193 #pragma warning (pop)
194#endif
195
196#define LOG4CXX_FILE(name) log4cxx::File(name)
197
198#endif // _LOG4CXX_FILE_H
An abstract representation of file and directory path names.
Definition: file.h:46
File(const wchar_t *path)
Construct a new instance.
log4cxx_time_t lastModified(log4cxx::helpers::Pool &p) const
Determines last modification date.
File(const std::basic_string< UniChar > &path)
Construct a new instance.
std::vector< LogString > list(log4cxx::helpers::Pool &p) const
List files if current file is a directory.
LogString getName() const
Get final portion of file path.
bool renameTo(const File &dest, log4cxx::helpers::Pool &p) const
Rename file.
File & operator=(const File &src)
Assignment operator.
LogString getParent(log4cxx::helpers::Pool &p) const
Get path of parent directory.
bool exists(log4cxx::helpers::Pool &p) const
Determines if file exists.
~File()
Destructor.
File(const CFStringRef &path)
Construct a new instance.
File(const std::wstring &path)
Construct a new instance.
File & setPath(const LogString &)
Set file path.
bool deleteFile(log4cxx::helpers::Pool &p) const
Delete file.
log4cxx_status_t open(apr_file_t **file, int flags, int perm, log4cxx::helpers::Pool &p) const
Open file.
File(const File &src)
Copy constructor.
File()
Construct a new instance.
File(const std::string &path)
Construct a new instance.
File(const char *path)
Construct a new instance.
LogString getPath() const
Get file path.
size_t length(log4cxx::helpers::Pool &p) const
Determines length of file.
bool mkdirs(log4cxx::helpers::Pool &p) const
Make directories recursively.
File(const UniChar *path)
Construct a new instance.
Definition: pool.h:33
const struct __CFString * CFStringRef
Definition: logstring.h:36
Definition: messagehandler.h:23
std::basic_string< logchar > LogString
Definition: logstring.h:66
unsigned short UniChar
Definition: logstring.h:44