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 
27   class ITransportLayer
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 }
36