/* * Copyright (c) 2011-2018 Isode Limited. * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include #include namespace Swift { class NATPMPInterface : public NATTraversalInterface, boost::noncopyable { public: NATPMPInterface(); virtual ~NATPMPInterface(); virtual bool isAvailable(); virtual boost::optional getPublicIP(); virtual boost::optional addPortForward(unsigned short localPort, unsigned short publicPort); virtual bool removePortForward(const NATPortMapping&); private: struct Private; const std::unique_ptr p; }; }