xbmc
FileItemHandler.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 "JSONRPC.h"
12 #include "JSONUtils.h"
13 
14 #include <memory>
15 #include <set>
16 
17 class CFileItem;
18 class CFileItemList;
19 class CThumbLoader;
20 class CVariant;
21 class ISerializable;
22 
23 namespace JSONRPC
24 {
26  {
27  protected:
28  static void FillDetails(const ISerializable* info,
29  const std::shared_ptr<CFileItem>& item,
30  std::set<std::string>& fields,
31  CVariant& result,
32  CThumbLoader* thumbLoader = nullptr);
33  static void HandleFileItemList(const char *ID, bool allowFile, const char *resultname, CFileItemList &items, const CVariant &parameterObject, CVariant &result, bool sortLimit = true);
34  static void HandleFileItemList(const char *ID, bool allowFile, const char *resultname, CFileItemList &items, const CVariant &parameterObject, CVariant &result, int size, bool sortLimit = true);
35  static void HandleFileItem(const char* ID,
36  bool allowFile,
37  const char* resultname,
38  const std::shared_ptr<CFileItem>& item,
39  const CVariant& parameterObject,
40  const CVariant& validFields,
41  CVariant& result,
42  bool append = true,
43  CThumbLoader* thumbLoader = nullptr);
44  static void HandleFileItem(const char* ID,
45  bool allowFile,
46  const char* resultname,
47  const std::shared_ptr<CFileItem>& item,
48  const CVariant& parameterObject,
49  const std::set<std::string>& validFields,
50  CVariant& result,
51  bool append = true,
52  CThumbLoader* thumbLoader = nullptr);
53 
54  static bool FillFileItemList(const CVariant &parameterObject, CFileItemList &list);
55  private:
56  static void Sort(CFileItemList &items, const CVariant& parameterObject);
57  static bool GetField(const std::string& field,
58  const CVariant& info,
59  const std::shared_ptr<CFileItem>& item,
60  CVariant& result,
61  bool& fetchedArt,
62  CThumbLoader* thumbLoader = nullptr);
63  };
64 }
Represents a list of files.
Definition: FileItem.h:721
Definition: AddonsOperations.h:23
Definition: Variant.h:31
Definition: FileItemHandler.h:25
Definition: ISerializable.h:13
Helper class containing utility methods to handle json rpc method calls.
Definition: JSONUtils.h:46
Represents a file on a share.
Definition: FileItem.h:102
Definition: ThumbLoader.h:17