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