/* * Copyright (c) 2011 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include #include #include #include #include #include #include namespace Swift { class NullNATTraversalGetPublicIPRequest : public NATTraversalGetPublicIPRequest { public: NullNATTraversalGetPublicIPRequest(EventLoop* eventLoop) : eventLoop(eventLoop) { } virtual void start() { eventLoop->postEvent(boost::bind(boost::ref(onResult), boost::optional())); } virtual void stop() { } private: EventLoop* eventLoop; }; class NullNATTraversalForwardPortRequest : public NATTraversalForwardPortRequest { public: NullNATTraversalForwardPortRequest(EventLoop* eventLoop) : eventLoop(eventLoop) { } virtual void start() { eventLoop->postEvent(boost::bind(boost::ref(onResult), boost::optional())); } virtual void stop() { } private: EventLoop* eventLoop; }; class NullNATTraversalRemovePortForwardingRequest : public NATTraversalRemovePortForwardingRequest { public: NullNATTraversalRemovePortForwardingRequest(EventLoop* eventLoop) : eventLoop(eventLoop) { } virtual void start() { eventLoop->postEvent(boost::bind(boost::ref(onResult), boost::optional(true))); } virtual void stop() { } private: EventLoop* eventLoop; }; NullNATTraverser::NullNATTraverser(EventLoop* eventLoop) : eventLoop(eventLoop) { } boost::shared_ptr NullNATTraverser::createGetPublicIPRequest() { return boost::make_shared(eventLoop); } boost::shared_ptr NullNATTraverser::createForwardPortRequest(int, int) { return boost::make_shared(eventLoop); } boost::shared_ptr NullNATTraverser::createRemovePortForwardingRequest(int, int) { return boost::make_shared(eventLoop); } }