xbmc
ITransportLayer.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 <string>
12 
13 class CVariant;
14 
15 namespace JSONRPC
16 {
17  enum TransportLayerCapability
18  {
19  Response = 0x1,
20  Announcing = 0x2,
21  FileDownloadRedirect = 0x4,
22  FileDownloadDirect = 0x8
23  };
24 
25  #define TRANSPORT_LAYER_CAPABILITY_ALL (Response | Announcing | FileDownloadRedirect | FileDownloadDirect)
26 
28  {
29  public:
30  virtual ~ITransportLayer() = default;
31  virtual bool PrepareDownload(const char *path, CVariant &details, std::string &protocol) = 0;
32  virtual bool Download(const char *path, CVariant &result) = 0;
33  virtual int GetCapabilities() = 0;
34  };
35 }
Definition: AddonsOperations.h:23
Definition: Variant.h:29
Definition: ITransportLayer.h:27