--- a/libupnpp/upnpplib.hxx
+++ b/libupnpp/upnpplib.hxx
@@ -35,9 +35,14 @@
* On the first call, this initializes libupnp and registers us as a
* client, but does not perform any other action (does not start
* discovery)
+ * @param server Act as server (implement device) if true, client else.
+ * This is only used on the first call, it's ignored once the library is
+ * initialized.
* @return 0 for failure.
*/
- static LibUPnP* getLibUPnP();
+ static LibUPnP* getLibUPnP(bool server = false);
+
+ int setupWebServer(const std::string& description);
/** Set log file name and activate logging.
*
@@ -45,8 +50,7 @@
*/
bool setLogFileName(const std::string& fn);
- /** Set max library buffer size for reading content from servers.
- * The default is 200k and should be ok */
+ /** Set max library buffer size for reading content from servers. */
void setMaxContentLength(int bytes);
/** Check state after initialization */
@@ -66,16 +70,21 @@
*/
void registerHandler(Upnp_EventType et, Upnp_FunPtr handler, void *cookie);
- UpnpClient_Handle getclh()
- {
- return m_clh;
- }
+ /** 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);
/** Translate integer error code (UPNP_E_XXX) to string */
static std::string errAsString(const std::string& who, int code);
static std::string evTypeAsString(Upnp_EventType);
+
+
+ UpnpClient_Handle getclh()
+ {
+ return m_clh;
+ }
private:
// A Handler object records the data from registerHandler.
@@ -89,7 +98,7 @@
void *cookie;
};
- LibUPnP();
+ LibUPnP(bool server);
LibUPnP(const LibUPnP &);
LibUPnP& operator=(const LibUPnP &);
@@ -98,6 +107,7 @@
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;
};