2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 #ifndef WRTDEVICEAPIS_FILESYSTEM_PATH_H_
17 #define WRTDEVICEAPIS_FILESYSTEM_PATH_H_
21 #include <dpl/enable_shared_from_this.h>
22 #include <Filesystem/IPath.h>
24 namespace WrtDeviceApis {
25 namespace Filesystem {
26 class Path : public Api::IPath,
27 public DPL::EnableSharedFromThis<Path>
30 static Api::IPathPtr create(const std::string& path);
31 static Api::IPath::SeparatorType getSeparator();
34 std::string getFullPath() const;
35 std::string getPath() const;
36 std::string getName() const;
37 Api::IPathPtr append(const std::string& path);
38 Api::IPathPtr append(const Api::IPathPtr& path);
39 bool isAbsolute() const;
40 Api::IPathPtr clone() const;
44 * Checks whether specified string is a valid path.
45 * @param path String to verify.
46 * @return True when string is a valid path, false otherwise.
48 static bool isValid(const std::string& str);
52 void reset(const std::string& str);
55 static const SeparatorType m_pathSeparator; ///< Path separator.
58 std::string m_fullPath; ///< Full path.
59 std::string m_path; ///< Base path.
60 std::string m_name; ///< Last part of the path.
65 #endif /* WRTDEVICEAPIS_FILESYSTEM_PATH_H_ */