1#ifndef COMPA_SERVICE_TABLE_HPP
2#define COMPA_SERVICE_TABLE_HPP
50#define SID_SIZE (size_t)41
87#ifdef COMPA_HAVE_DEVICE_SSDP
104#ifdef COMPA_HAVE_DEVICE_GENA
204 const char* serviceId,
222 const char* eventURLPath);
236 const char* controlURLPath);
251#define printService(service, level, module) \
270#define printServiceList(service, level, module) \
289#define printServiceTable(table, level, module) \
294#ifdef COMPA_HAVE_DEVICE_GENA
355 const char* DefaultURLBase);
370 const char* DefaultURLBase);
398 const char* element_name,
char Upnp_SID[44]
Holds the subscription identifier for a subscription between a client and a device.
Represents a list of URLs as in the "callback" header of SUBSCRIBE message in GENA.
Manage a linked list (for internal use only).
Linked list (no protection).
Manage Uniform Resource Identifier (URI) as specified with RFC 3986.
Main program configuration file.
Data structure common to all types of nodes.
#define DOMString
The type of DOM strings.
int TotalSubscriptions
Part of Service information.
service_info * FindServiceControlURLPath(service_table *table, const char *controlURLPath)
Traverses the service table and finds the node whose control URL Path matches a known value.
service_info * serviceList
Part of the service table.
void printService(service_info *service, Upnp_LogLevel level, Dbg_Module module)
prints information from the service passed into the function.
void printServiceTable(service_table *table, Upnp_LogLevel level, Dbg_Module module)
Prints the URL base of the table and information of each service from the service table.
void freeSubscriptionQueuedEvents(subscription *sub)
???
int getSubElement(const char *element_name, IXML_Node *node, IXML_Node **out)
Traverses through a list of XML nodes to find the node with the known element name.
URL_list DeliveryURLs
Part of subscription.
void printServiceList(service_info *service, Upnp_LogLevel level, Dbg_Module module)
Prints information of each service from the service table passed into the function.
subscription * GetFirstSubscription(service_info *service)
Gets pointer to the first subscription node in the service table.
subscription * GetSubscriptionSID(const Upnp_SID sid, service_info *service)
Return the subscription from the service table that matches const Upnp_SID sid value.
int active
Part of subscription.
char * eventURL
Part of Service information.
void freeService(service_info *in)
Free's memory allocated for the various components of the service entry in the service table.
struct subscription * next
Part of subscription.
int copy_subscription(subscription *in, subscription *out)
Makes a copy of the subscription.
void freeServiceTable(service_table *table)
Free's dynamic memory in table (does not free table, only memory within the structure).
service_info * endServiceList
Part of the service table.
struct service_info * next
Part of Service information.
int addServiceTable(IXML_Node *node, service_table *in, const char *DefaultURLBase)
Add Service to the table.
void freeServiceList(service_info *head)
Free's memory allocated for the various components of each service entry in the service table.
DOMString URLBase
Part of the service table.
Upnp_SID sid
Part of subscription.
void freeSubscription(subscription *sub)
Free's the memory allocated for storing the URL of the subscription.
int removeServiceTable(IXML_Node *node, service_table *in)
Remove all services for a root device.
subscription * subscriptionList
Part of Service information.
DOMString UDN
Part of Service information.
DOMString serviceId
Part of Service information.
service_info * FindServiceEventURLPath(service_table *table, const char *eventURLPath)
Traverses the service table and finds the node whose event URL Path matches a known value.
LinkedList outgoing
List of queued events for this subscription.
void RemoveSubscriptionSID(Upnp_SID sid, service_info *service)
Remove the subscription from the service table and update it.
DOMString serviceType
Part of Service information.
int getServiceTable(IXML_Node *node, service_table *out, const char *DefaultURLBase)
Retrieve service from the table.
char * SCPDURL
Part of Service information.
void freeSubscriptionList(subscription *head)
Free's memory allocated for all the subscriptions in the service table.
int ToSendEventKey
Part of subscription.
time_t expireTime
Part of subscription.
int active
Part of Service information.
subscription * GetNextSubscription(service_info *service, subscription *current)
Get current and valid subscription from the service table.
char * controlURL
Part of Service information.
DOMString getElementValue(IXML_Node *node)
Returns the clone of the element value.
service_info * FindServiceId(service_table *table, const char *serviceId, const char *UDN)
Traverses through the service table to find a service.
-brief Service information
Manage Debug messages with levels "critical" to "all".
enum Upnp_Module Dbg_Module
Only debug messages from this program module.
enum Upnp_LogLevel_e Upnp_LogLevel
Upnp_LogLevel.