[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / filesystem / MultiPathDirectory.h
blob7f922173b95053c2e95e320f6634d953cd68929f
1 /*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #pragma once
11 #include "IDirectory.h"
13 #include <set>
14 #include <string>
15 #include <vector>
17 namespace XFILE
19 class CMultiPathDirectory :
20 public IDirectory
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;
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);
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);