xbmc
MultiPathDirectory.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "IDirectory.h"
12 
13 #include <set>
14 #include <string>
15 #include <vector>
16 
17 namespace XFILE
18 {
20  public IDirectory
21 {
22 public:
23  CMultiPathDirectory(void);
24  ~CMultiPathDirectory(void) override;
25  bool GetDirectory(const CURL& url, CFileItemList &items) override;
26  bool Exists(const CURL& url) override;
27  bool Remove(const CURL& url) override;
28 
29  static std::string GetFirstPath(const std::string &strPath);
30  static bool SupportsWriteFileOperations(const std::string &strPath);
31  static bool GetPaths(const CURL& url, std::vector<std::string>& vecPaths);
32  static bool GetPaths(const std::string& path, std::vector<std::string>& paths);
33  static bool HasPath(const std::string& strPath, const std::string& strPathToFind);
34  static std::string ConstructMultiPath(const std::vector<std::string> &vecPaths);
35  static std::string ConstructMultiPath(const std::set<std::string> &setPaths);
36 
37 private:
38  void MergeItems(CFileItemList &items);
39  static void AddToMultiPath(std::string& strMultiPath, const std::string& strPath);
40  std::string ConstructMultiPath(const CFileItemList& items, const std::vector<int> &stack);
41 };
42 }
bool GetDirectory(const CURL &url, CFileItemList &items) override
Get the items of the directory strPath.
Definition: MultiPathDirectory.cpp:40
Interface to the directory on a file system.
Definition: IDirectory.h:51
Definition: Scraper.h:41
Represents a list of files.
Definition: FileItem.h:721
Definition: URL.h:21
Definition: MultiPathDirectory.h:19
bool Remove(const CURL &url) override
Removes the directory.
Definition: MultiPathDirectory.cpp:124
bool Exists(const CURL &url) override
Check for directory existence.
Definition: MultiPathDirectory.cpp:107