--- a/libupnpp/upnpplib.hxx
+++ b/libupnpp/upnpplib.hxx
@@ -1,18 +1,18 @@
/* Copyright (C) 2013 J.F.Dockes
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the
+ * Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _LIBUPNP_H_X_INCLUDED_
#define _LIBUPNP_H_X_INCLUDED_
@@ -28,119 +28,116 @@
/** Our link to libupnp. Initialize and keep the handle around */
class LibUPnP {
public:
- ~LibUPnP();
+ ~LibUPnP();
- /** Retrieve the singleton LibUPnP object
- *
- * This initializes libupnp, possibly setting an address and port, possibly
- * registering a client if serveronly is false.
- *
- * @param serveronly no client init
- * @param hwaddr returns the hardware address for the specified network
- * interface, or the first one is ifname is empty. If the IP address is
- * specified instead of the interface name, the hardware address
- * returned is not necessarily the one matching the IP.
- * @param ifname if not empty, network interface to use. Translated to
- * IP address for the UpnpInit() call.
- * @param ip if not empty, IP address to use. Only used if ifname is empty.
- * @param port port parameter to UpnpInit() (0 for default).
- * @return 0 for failure.
- */
- static LibUPnP* getLibUPnP(bool serveronly = false, std::string* hwaddr = 0,
- const std::string ifname = string(),
- const std::string ip = string(),
- unsigned short port = 0);
+ /** Retrieve the singleton LibUPnP object
+ *
+ * This initializes libupnp, possibly setting an address and port, possibly
+ * registering a client if serveronly is false.
+ *
+ * @param serveronly no client init
+ * @param hwaddr returns the hardware address for the specified network
+ * interface, or the first one is ifname is empty. If the IP address is
+ * specified instead of the interface name, the hardware address
+ * returned is not necessarily the one matching the IP.
+ * @param ifname if not empty, network interface to use. Translated to
+ * IP address for the UpnpInit() call.
+ * @param ip if not empty, IP address to use. Only used if ifname is empty.
+ * @param port port parameter to UpnpInit() (0 for default).
+ * @return 0 for failure.
+ */
+ static LibUPnP* getLibUPnP(bool serveronly = false, std::string* hwaddr = 0,
+ const std::string ifname = string(),
+ const std::string ip = string(),
+ unsigned short port = 0);
- /** Set libupnp log file name and activate logging.
- *
- * @param fn file name to use. Use empty string to turn logging off
- */
- enum LogLevel {LogLevelNone, LogLevelError, LogLevelDebug};
- bool setLogFileName(const std::string& fn, LogLevel level = LogLevelError);
- bool setLogLevel(LogLevel level);
+ /** Set libupnp log file name and activate logging.
+ *
+ * @param fn file name to use. Use empty string to turn logging off
+ */
+ enum LogLevel {LogLevelNone, LogLevelError, LogLevelDebug};
+ bool setLogFileName(const std::string& fn, LogLevel level = LogLevelError);
+ bool setLogLevel(LogLevel level);
- /** Set max library buffer size for reading content from servers. */
- void setMaxContentLength(int bytes);
+ /** Set max library buffer size for reading content from servers. */
+ void setMaxContentLength(int bytes);
- /** Check state after initialization */
- bool ok() const
- {
- return m_ok;
- }
+ /** Check state after initialization */
+ bool ok() const
+ {
+ return m_ok;
+ }
- /** Retrieve init error if state not ok */
- int getInitError() const
- {
- return m_init_error;
- }
+ /** Retrieve init error if state not ok */
+ int getInitError() const
+ {
+ return m_init_error;
+ }
- /** Build a unique persistent UUID for a root device. This uses a hash
- of the input name (e.g.: friendlyName), and the host Ethernet address */
- static std::string makeDevUUID(const std::string& name, const std::string& hw);
+ /** Build a unique persistent UUID for a root device. This uses a hash
+ of the input name (e.g.: friendlyName), and the host Ethernet address */
+ static std::string makeDevUUID(const std::string& name,
+ const std::string& hw);
- /** Translate libupnp integer error code (UPNP_E_XXX) to string */
- static std::string errAsString(const std::string& who, int code);
+ /** Translate libupnp integer error code (UPNP_E_XXX) to string */
+ static std::string errAsString(const std::string& who, int code);
/////////////////////////////////////////////////////////////////////////////
- /* The methods which follow are normally for use by the
- * intermediate layers in libupnpp, such as the base device class
- * or the server directory, end-user code should not need them in
- * general.
- */
+ /* The methods which follow are normally for use by the
+ * intermediate layers in libupnpp, such as the base device class
+ * or the server directory, end-user code should not need them in
+ * general.
+ */
- /** Specify function to be called on given UPnP event. This will happen
- * in the libupnp thread context.
- */
- void registerHandler(Upnp_EventType et, Upnp_FunPtr handler, void *cookie);
+ /** Specify function to be called on given UPnP event. This will happen
+ * in the libupnp thread context.
+ */
+ void registerHandler(Upnp_EventType et, Upnp_FunPtr handler, void *cookie);
- /** Translate libupnp event type as string */
- static std::string evTypeAsString(Upnp_EventType);
+ /** Translate libupnp event type as string */
+ static std::string evTypeAsString(Upnp_EventType);
- int setupWebServer(const std::string& description);
+ int setupWebServer(const std::string& description);
- UpnpClient_Handle getclh()
- {
- return m_clh;
- }
- UpnpDevice_Handle getdvh()
- {
- return m_dvh;
- }
+ UpnpClient_Handle getclh()
+ {
+ return m_clh;
+ }
+ UpnpDevice_Handle getdvh()
+ {
+ return m_dvh;
+ }
private:
- // A Handler object records the data from registerHandler.
- class Handler {
- public:
- Handler()
- : handler(0), cookie(0) {}
- Handler(Upnp_FunPtr h, void *c)
- : handler(h), cookie(c) {}
- Upnp_FunPtr handler;
- void *cookie;
- };
+ // A Handler object records the data from registerHandler.
+ class Handler {
+ public:
+ Handler()
+ : handler(0), cookie(0) {}
+ Handler(Upnp_FunPtr h, void *c)
+ : handler(h), cookie(c) {}
+ Upnp_FunPtr handler;
+ void *cookie;
+ };
-
- LibUPnP(bool serveronly, std::string *hwaddr,
- const std::string ifname, const std::string ip,
- unsigned short port);
+
+ LibUPnP(bool serveronly, std::string *hwaddr,
+ const std::string ifname, const std::string ip,
+ unsigned short port);
- LibUPnP(const LibUPnP &);
- LibUPnP& operator=(const LibUPnP &);
+ LibUPnP(const LibUPnP &);
+ LibUPnP& operator=(const LibUPnP &);
- static int o_callback(Upnp_EventType, void *, void *);
+ static int o_callback(Upnp_EventType, void *, void *);
- bool m_ok;
- int m_init_error;
- UpnpClient_Handle m_clh;
- UpnpDevice_Handle m_dvh;
- PTMutexInit m_mutex;
- std::map<Upnp_EventType, Handler> m_handlers;
+ bool m_ok;
+ int m_init_error;
+ UpnpClient_Handle m_clh;
+ // !TBD: there should be one handle per device if we ever want to have
+ // several devices in the same process.
+ UpnpDevice_Handle m_dvh;
+ PTMutexInit m_mutex;
+ std::map<Upnp_EventType, Handler> m_handlers;
};
#endif /* _LIBUPNP.H_X_INCLUDED_ */
-/* Local Variables: */
-/* mode: c++ */
-/* c-basic-offset: 4 */
-/* tab-width: 4 */
-/* indent-tabs-mode: t */
-/* End: */