#include <cybergarage/typedef.h>
#include <cybergarage/xml/cxml.h>
#include <cybergarage/util/ctime.h>
#include <cybergarage/util/clist.h>
#include <cybergarage/util/cstring.h>
#include <cybergarage/util/cmutex.h>
#include <cybergarage/net/curl.h>
#include <cybergarage/upnp/caction.h>
#include <cybergarage/upnp/cstatevariable.h>
#include <cybergarage/upnp/ssdp/cssdp_server.h>
#include <cybergarage/upnp/event/csubscriber.h>
Data Structures | |
struct | _CgUpnpService |
Defines | |
#define | CG_UPNP_SERVICE_ELEM_NAME "service" |
#define | CG_UPNP_SERVICELIST_ELEM_NAME "serviceList" |
#define | CG_UPNP_SERVICE_TYPE "serviceType" |
#define | CG_UPNP_SERVICE_ID "serviceId" |
#define | CG_UPNP_SERVICE_SCPDURL "SCPDURL" |
#define | CG_UPNP_SERVICE_CONTROL_URL "controlURL" |
#define | CG_UPNP_SERVICE_EVENT_SUB_URL "eventSubURL" |
#define | CG_UPNP_SERVICE_EVENT_KEY_INVALID 0 |
#define | cg_upnp_service_next(service) (CgUpnpService *)cg_list_next((CgList *)service) |
#define | cg_upnp_service_isservicenode(node) cg_xml_node_isname(node, CG_UPNP_SERVICE_ELEM_NAME) |
#define | cg_upnp_service_getscpdnode(service) cg_xml_nodelist_gets(service->scpdNodeList) |
#define | cg_upnp_service_setservicenode(service, node) (service->serviceNode = node) |
#define | cg_upnp_service_getservicenode(service) (service->serviceNode) |
#define | cg_upnp_service_getdevicenode(service) cg_xml_node_getparentnode(cg_xml_node_getparentnode(service->serviceNode)) |
#define | cg_upnp_service_isparsed(service) (service->parsed) |
#define | cg_upnp_service_setservicetype(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_TYPE, value) |
#define | cg_upnp_service_getservicetype(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_TYPE) |
#define | cg_upnp_service_setserviceid(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_ID, value) |
#define | cg_upnp_service_getserviceid(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_ID) |
#define | cg_upnp_service_setscpdurl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_SCPDURL, value) |
#define | cg_upnp_service_getscpdurl(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_SCPDURL) |
#define | cg_upnp_service_setcontrolurl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_CONTROL_URL, value) |
#define | cg_upnp_service_getcontrolurl(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_CONTROL_URL) |
#define | cg_upnp_service_seteventsuburl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_EVENT_SUB_URL, value) |
#define | cg_upnp_service_geteventsuburl(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_EVENT_SUB_URL) |
#define | cg_upnp_service_hasactionbyname(service, name) ((cg_upnp_service_getactionbyname(service,name) != NULL) ? TRUE : FALSE) |
#define | cg_upnp_service_hasstatevariablebyname(service, name) ((cg_upnp_service_getstatevariablebyname(service,name) != NULL) ? TRUE : FALSE) |
#define | cg_upnp_service_setdevice(service, dev) (service->parentDevice = dev) |
#define | cg_upnp_service_getdevice(service) ((CgUpnpDevice *)service->parentDevice) |
#define | cg_upnp_service_getrootdevice(service) cg_upnp_device_getrootdevice((CgUpnpDevice *)service->parentDevice) |
#define | cg_upnp_service_getsubscribers(service) cg_upnp_subscriberlist_gets(service->subscriberList) |
#define | cg_upnp_service_getnsubscribers(service) cg_upnp_subscriberlist_size(service->subscriberList) |
#define | cg_upnp_service_lock(service) cg_mutex_lock(service->mutex) |
#define | cg_upnp_service_unlock(service) cg_mutex_unlock(service->mutex) |
#define | cg_upnp_service_setsubscriptionsid(service, value) cg_string_setvalue(service->subscriptionSid, value) |
#define | cg_upnp_service_getsubscriptionsid(service) cg_string_getvalue(service->subscriptionSid) |
#define | cg_upnp_service_issubscribed(service) ((0 < cg_string_length(service->subscriptionSid)) ? TRUE : FALSE) |
#define | cg_upnp_service_clearsubscriptionsid(service) cg_string_setvalue(service->subscriptionSid, "") |
#define | cg_upnp_service_setsubscriptiontimeout(service, value) (service->subscriptionTimeout = value) |
#define | cg_upnp_service_getsubscriptiontimeout(service) (service->subscriptionTimeout) |
#define | cg_upnp_service_setuserdata(service, value) (service->userData = value) |
#define | cg_upnp_service_getuserdata(service) (service->userData) |
#define | cg_upnp_service_seteventkey(service, value) (service->eventKey = value) |
#define | cg_upnp_service_geteventkey(service) (service->eventKey) |
#define | cg_upnp_service_setsubscriptiontimestamp(service, value) (service->subscriptionTimestamp = value) |
#define | cg_upnp_service_getsubscriptiontimestamp(service) (service->subscriptionTimestamp) |
#define | cg_upnp_service_getsubscriptionexpiration(service) (service->subscriptionTimestamp + service->subscriptionTimeout - CG_UPNP_SUBSCRIPTION_DELAY) |
#define | cg_upnp_servicelist_clear(serviceList) cg_list_clear((CgList *)serviceList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_service_delete) |
#define | cg_upnp_servicelist_size(serviceList) cg_list_size((CgList *)serviceList) |
#define | cg_upnp_servicelist_gets(serviceList) (CgUpnpService *)cg_list_next((CgList *)serviceList) |
#define | cg_upnp_servicelist_add(serviceList, service) cg_list_add((CgList *)serviceList, (CgList *)service) |
Typedefs | |
typedef _CgUpnpService | CgUpnpService |
typedef _CgUpnpService | CgUpnpServiceList |
Functions | |
CgUpnpService * | cg_upnp_service_new () |
void | cg_upnp_service_delete (CgUpnpService *service) |
void | cg_upnp_service_clear (CgUpnpService *service) |
BOOL | cg_upnp_service_parsedescription (CgUpnpService *service, char *description, int descriptionLen) |
BOOL | cg_upnp_service_parsedescriptionurl (CgUpnpService *service, CgNetURL *url) |
char * | cg_upnp_service_getdescription (CgUpnpService *service, CgString *descStr) |
char * | cg_upnp_servicetype_getidentifier (char *serviceType) |
char * | cg_upnp_servicetype_geturn (char *serviceType) |
char * | cg_upnp_servicetype_getservice (char *serviceType) |
char * | cg_upnp_servicetype_gettype (char *serviceType) |
char * | cg_upnp_servicetype_getschematype (char *serviceType) |
char * | cg_upnp_servicetype_getversion (char *serviceType) |
BOOL | cg_upnp_service_isscpdurl (CgUpnpService *service, char *url) |
CgUpnpActionList * | cg_upnp_service_getactionlist (CgUpnpService *service) |
CgUpnpAction * | cg_upnp_service_getactions (CgUpnpService *service) |
CgUpnpAction * | cg_upnp_service_getactionbyname (CgUpnpService *service, char *name) |
CgUpnpServiceStateTable * | cg_upnp_service_getservicestatetable (CgUpnpService *service) |
CgUpnpStateVariable * | cg_upnp_service_getstatevariables (CgUpnpService *service) |
CgUpnpStateVariable * | cg_upnp_service_getstatevariablebyname (CgUpnpService *service, char *name) |
BOOL | cg_upnp_service_announcefrom (CgUpnpService *service, char *bindAddr) |
BOOL | cg_upnp_service_byebyefrom (CgUpnpService *service, char *bindAddr) |
void | cg_upnp_service_setactionlistener (CgUpnpService *service, CG_UPNP_ACTION_LISTNER actionListener) |
void | cg_upnp_service_setquerylistener (CgUpnpService *service, CG_UPNP_STATEVARIABLE_LISTNER queryListener) |
BOOL | cg_upnp_service_addsubscriber (CgUpnpService *service, CgUpnpSubscriber *sub) |
BOOL | cg_upnp_service_removesubscriber (CgUpnpService *service, CgUpnpSubscriber *sub) |
CgUpnpSubscriber * | cg_upnp_service_getsubscriberbysid (CgUpnpService *service, char *sid) |
char * | cg_upnp_service_getnotifyservicetypent (CgUpnpService *service, char *buf, int bufSize) |
char * | cg_upnp_service_getnotifyservicetypeusn (CgUpnpService *service, char *buf, int bufSize) |
BOOL | cg_upnp_service_notify (CgUpnpService *service, CgUpnpStateVariable *statVar) |
BOOL | cg_upnp_service_notifyallstatevariables (CgUpnpService *service) |
CgUpnpServiceList * | cg_upnp_servicelist_new () |
void | cg_upnp_servicelist_delete (CgUpnpServiceList *serviceList) |
void | cg_upnp_service_ssdpmessagereceived (CgUpnpService *service, CgUpnpSSDPPacket *ssdpPkt) |
#define cg_upnp_service_clearsubscriptionsid | ( | service | ) | cg_string_setvalue(service->subscriptionSid, "") |
Clear (i.e. empty) the service's SID (subscription ID)
service | The service in question |
#define CG_UPNP_SERVICE_CONTROL_URL "controlURL" |
#define CG_UPNP_SERVICE_ELEM_NAME "service" |
#define CG_UPNP_SERVICE_EVENT_KEY_INVALID 0 |
#define CG_UPNP_SERVICE_EVENT_SUB_URL "eventSubURL" |
#define cg_upnp_service_getcontrolurl | ( | service | ) | cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_CONTROL_URL) |
Get the service's control URL
service | The service in question |
#define cg_upnp_service_getdevice | ( | service | ) | ((CgUpnpDevice *)service->parentDevice) |
Get the service's parent device
service | The service in question |
#define cg_upnp_service_getdevicenode | ( | service | ) | cg_xml_node_getparentnode(cg_xml_node_getparentnode(service->serviceNode)) |
Get the parent device's XML node for the service
service | The service in question |
#define cg_upnp_service_geteventkey | ( | service | ) | (service->eventKey) |
Get the service's event key
service | The service in question |
#define cg_upnp_service_geteventsuburl | ( | service | ) | cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_EVENT_SUB_URL) |
Get the service's event subscription URL
service | The service in question |
#define cg_upnp_service_getnsubscribers | ( | service | ) | cg_upnp_subscriberlist_size(service->subscriberList) |
Get the number of subscribers for the service
service | The service in question |
#define cg_upnp_service_getrootdevice | ( | service | ) | cg_upnp_device_getrootdevice((CgUpnpDevice *)service->parentDevice) |
Get the service's top-most root device
service | The service in question |
#define cg_upnp_service_getscpdnode | ( | service | ) | cg_xml_nodelist_gets(service->scpdNodeList) |
Get the service's SCPD node
service | The service in question |
#define cg_upnp_service_getscpdurl | ( | service | ) | cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_SCPDURL) |
Get the service's SCPD (service description) URL
service | The service in question |
#define cg_upnp_service_getserviceid | ( | service | ) | cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_ID) |
Get the service's service ID
service | The service in question |
#define cg_upnp_service_getservicenode | ( | service | ) | (service->serviceNode) |
Get the root XML node for the service
service | The service in question |
#define cg_upnp_service_getservicetype | ( | service | ) | cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_TYPE) |
Get the service's complete type string (ex. "urn:schemas-upnp-org:service:FooService:1")
service | The service in question |
#define cg_upnp_service_getsubscribers | ( | service | ) | cg_upnp_subscriberlist_gets(service->subscriberList) |
Get the first node in the service's list of event subscribers. Use as the starting point in iteration loops.
service | The service in question |
#define cg_upnp_service_getsubscriptionexpiration | ( | service | ) | (service->subscriptionTimestamp + service->subscriptionTimeout - CG_UPNP_SUBSCRIPTION_DELAY) |
Get the service's subscription expiration time
service | The service in question |
#define cg_upnp_service_getsubscriptionsid | ( | service | ) | cg_string_getvalue(service->subscriptionSid) |
Get the service's SID (subscription ID)
service | The service in question |
#define cg_upnp_service_getsubscriptiontimeout | ( | service | ) | (service->subscriptionTimeout) |
Get the service's subscription timeout (expiration) value
service | The service in question |
#define cg_upnp_service_getsubscriptiontimestamp | ( | service | ) | (service->subscriptionTimestamp) |
Get the service's subscription time stamp
service | The service in question |
#define cg_upnp_service_getuserdata | ( | service | ) | (service->userData) |
Get the service's arbitrary user data pointer
service | The service in question |
#define cg_upnp_service_hasactionbyname | ( | service, | |||
name | ) | ((cg_upnp_service_getactionbyname(service,name) != NULL) ? TRUE : FALSE) |
Check, whether a service has an action by the given name
service | The service in question | |
name | The name of the action |
#define cg_upnp_service_hasstatevariablebyname | ( | service, | |||
name | ) | ((cg_upnp_service_getstatevariablebyname(service,name) != NULL) ? TRUE : FALSE) |
Check, whether the service has the given state variable
service | The service in question | |
name | The name of the state variable |
#define CG_UPNP_SERVICE_ID "serviceId" |
#define cg_upnp_service_isparsed | ( | service | ) | (service->parsed) |
Get the service's parsing status (i.e. whether the service has been completely constructed). Useful mainly in optimized control point mode.
service | The service in question |
#define cg_upnp_service_isservicenode | ( | node | ) | cg_xml_node_isname(node, CG_UPNP_SERVICE_ELEM_NAME) |
Check, whether the given XML node is a service root node
node | CgXmlNode* |
#define cg_upnp_service_issubscribed | ( | service | ) | ((0 < cg_string_length(service->subscriptionSid)) ? TRUE : FALSE) |
Check, whether the service has any subscribers
service | The service in question |
#define cg_upnp_service_lock | ( | service | ) | cg_mutex_lock(service->mutex) |
Lock the service's mutex
service | The service in question |
#define cg_upnp_service_next | ( | service | ) | (CgUpnpService *)cg_list_next((CgList *)service) |
Get the next service in a service list. Use as an iterator.
service | Current service |
#define CG_UPNP_SERVICE_SCPDURL "SCPDURL" |
#define cg_upnp_service_setcontrolurl | ( | service, | |||
value | ) | cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_CONTROL_URL, value) |
Set the service's control URL
service | The service in question | |
value | The control URL string |
#define cg_upnp_service_setdevice | ( | service, | |||
dev | ) | (service->parentDevice = dev) |
Set the service's parent device
service | The service in question | |
dev | The parent device |
#define cg_upnp_service_seteventkey | ( | service, | |||
value | ) | (service->eventKey = value) |
Set the service's event key (i.e. the sequential number used in events)
service | The service in question | |
value | The event key value (uint) |
#define cg_upnp_service_seteventsuburl | ( | service, | |||
value | ) | cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_EVENT_SUB_URL, value) |
Get the service's event subscription URL
service | The service in question | |
value | The event subscription URL string |
#define cg_upnp_service_setscpdurl | ( | service, | |||
value | ) | cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_SCPDURL, value) |
Set the service's SCPD (service description) URL
service | The service in question | |
value | The SCPD URL string |
#define cg_upnp_service_setserviceid | ( | service, | |||
value | ) | cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_ID, value) |
Set the service's service ID
service | The service in question | |
value | Service ID string |
#define cg_upnp_service_setservicenode | ( | service, | |||
node | ) | (service->serviceNode = node) |
Set the root XML node for the service
service | The service in question | |
node | The node to set |
#define cg_upnp_service_setservicetype | ( | service, | |||
value | ) | cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_TYPE, value) |
Set the service's complete type string (ex. "urn:schemas-upnp-org:service:FooService:1")
service | The service in question | |
value | The type string |
#define cg_upnp_service_setsubscriptionsid | ( | service, | |||
value | ) | cg_string_setvalue(service->subscriptionSid, value) |
Set the service's subscription's SID (subscription ID)
service | The service in question | |
value | The SID |
#define cg_upnp_service_setsubscriptiontimeout | ( | service, | |||
value | ) | (service->subscriptionTimeout = value) |
Set the service's subscription timeout (expiration) value
service | The service in question | |
value | The timeout value |
#define cg_upnp_service_setsubscriptiontimestamp | ( | service, | |||
value | ) | (service->subscriptionTimestamp = value) |
Set the service's subscription time stamp
service | The service in question | |
value | The time stamp |
#define cg_upnp_service_setuserdata | ( | service, | |||
value | ) | (service->userData = value) |
Set the service's arbitrary user data pointer
service | The service in question | |
value | The user data pointer |
#define CG_UPNP_SERVICE_TYPE "serviceType" |
#define cg_upnp_service_unlock | ( | service | ) | cg_mutex_unlock(service->mutex) |
Unlock the service's mutex
service | The service in question |
#define cg_upnp_servicelist_add | ( | serviceList, | |||
service | ) | cg_list_add((CgList *)serviceList, (CgList *)service) |
Add a service to a list of services
serviceList | The list to add the service to | |
service | The service to add to the list |
#define cg_upnp_servicelist_clear | ( | serviceList | ) | cg_list_clear((CgList *)serviceList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_service_delete) |
Clear the contents of a list of services
serviceList | The list of services to clear |
#define CG_UPNP_SERVICELIST_ELEM_NAME "serviceList" |
#define cg_upnp_servicelist_gets | ( | serviceList | ) | (CgUpnpService *)cg_list_next((CgList *)serviceList) |
Get the first service in a list of services. Use as the starting point in iteration loops.
serviceList | The service list |
#define cg_upnp_servicelist_size | ( | serviceList | ) | cg_list_size((CgList *)serviceList) |
Get the number of services in a list of services
serviceList | The list of services |
typedef struct _CgUpnpService CgUpnpService |
typedef struct _CgUpnpService CgUpnpServiceList |
BOOL cg_upnp_service_addsubscriber | ( | CgUpnpService * | service, | |
CgUpnpSubscriber * | sub | |||
) |
Add a subscriber to the service
service | The service in question | |
sub | The subscriber |
BOOL cg_upnp_service_announcefrom | ( | CgUpnpService * | service, | |
char * | bindAddr | |||
) |
Send a service announcement (advertisement) from the given address
service | The service to advertise | |
bindAddr | The address to attach to the announcement |
BOOL cg_upnp_service_byebyefrom | ( | CgUpnpService * | service, | |
char * | bindAddr | |||
) |
Send a byebye announcement (i.e. a cancelling advertisement) from the given address
service | The service to announce from | |
bindAddr | The address to attach to the announcement |
void cg_upnp_service_clear | ( | CgUpnpService * | service | ) |
Clear the contents of a UPnP service
service | The service to clear |
void cg_upnp_service_delete | ( | CgUpnpService * | service | ) |
Destroy a UPnP service
service | The service to destroy |
CgUpnpAction* cg_upnp_service_getactionbyname | ( | CgUpnpService * | service, | |
char * | name | |||
) |
Get an action from the service by the action's name
service | The service in question | |
name | The name of the action to look for |
CgUpnpActionList* cg_upnp_service_getactionlist | ( | CgUpnpService * | service | ) |
Get the service's list of actions (head of list)
service | The service in question |
CgUpnpAction* cg_upnp_service_getactions | ( | CgUpnpService * | service | ) |
Get the first action in the service's list of actions. Use as the starting point in iteration loops.
service | The service in question |
char* cg_upnp_service_getdescription | ( | CgUpnpService * | service, | |
CgString * | descStr | |||
) |
Get the service's description XML nodes as a string
service | The service in question | |
descStr | The description string |
char* cg_upnp_service_getnotifyservicetypent | ( | CgUpnpService * | service, | |
char * | buf, | |||
int | bufSize | |||
) |
char* cg_upnp_service_getnotifyservicetypeusn | ( | CgUpnpService * | service, | |
char * | buf, | |||
int | bufSize | |||
) |
CgUpnpServiceStateTable* cg_upnp_service_getservicestatetable | ( | CgUpnpService * | service | ) |
Get the service's state table
service | The service in question |
CgUpnpStateVariable* cg_upnp_service_getstatevariablebyname | ( | CgUpnpService * | service, | |
char * | name | |||
) |
Get a state variable from the service's state table by the variable's name
service | The service in question | |
name | the name of the variable |
CgUpnpStateVariable* cg_upnp_service_getstatevariables | ( | CgUpnpService * | service | ) |
Get the first state variable in the service's state table. Use as the starting point in iteration loops.
service | The service in question |
CgUpnpSubscriber* cg_upnp_service_getsubscriberbysid | ( | CgUpnpService * | service, | |
char * | sid | |||
) |
Find a subscriber from the service's list of subscribers by its SID (Subscription ID)
service | The service in question | |
sid | The SID |
BOOL cg_upnp_service_isscpdurl | ( | CgUpnpService * | service, | |
char * | url | |||
) |
Compare the service's SCPD URL and the given location
service | The service in question | |
url | The URL (location) to compare |
CgUpnpService* cg_upnp_service_new | ( | ) |
Create a new UPnP service
BOOL cg_upnp_service_notify | ( | CgUpnpService * | service, | |
CgUpnpStateVariable * | statVar | |||
) |
Send a notification of a service's changed state variable
service | The service in question | |
statVar | The changed state variable |
BOOL cg_upnp_service_notifyallstatevariables | ( | CgUpnpService * | service | ) |
Send a notification message to all of the service's subscribers
service | The service in question |
BOOL cg_upnp_service_parsedescription | ( | CgUpnpService * | service, | |
char * | description, | |||
int | descriptionLen | |||
) |
Create the service's contents from the given XML document
service | The service to create | |
description | The XML document to parse | |
descriptionLen | The length of the XML document |
BOOL cg_upnp_service_parsedescriptionurl | ( | CgUpnpService * | service, | |
CgNetURL * | url | |||
) |
Create the service's contents from the given URL. Gets the XML document from the URL and passes it again to cg_upnp_service_parsedescription
service | The service to create | |
url | The URL of the document to parse |
BOOL cg_upnp_service_removesubscriber | ( | CgUpnpService * | service, | |
CgUpnpSubscriber * | sub | |||
) |
Remove a subscriber from the service
service | The service in question | |
sub | The subscriber to remove |
void cg_upnp_service_setactionlistener | ( | CgUpnpService * | service, | |
CG_UPNP_ACTION_LISTNER | actionListener | |||
) |
Set an action listener to the service
service | The service in question | |
actionListener | A callback function of type CG_UPNP_ACTION_LISTNER |
void cg_upnp_service_setquerylistener | ( | CgUpnpService * | service, | |
CG_UPNP_STATEVARIABLE_LISTNER | queryListener | |||
) |
Set a query listener to the service
service | The service in question | |
queryListener | A callback function of type CG_UPNP_STATEVARIABLE_LISTNER |
void cg_upnp_service_ssdpmessagereceived | ( | CgUpnpService * | service, | |
CgUpnpSSDPPacket * | ssdpPkt | |||
) |
The service's handler function that deals with received SSDP messages.
service | The service in question | |
ssdpPkt | The received SSDP packet |
void cg_upnp_servicelist_delete | ( | CgUpnpServiceList * | serviceList | ) |
Destroy a list of services
serviceList | The list of services to destroy |
CgUpnpServiceList* cg_upnp_servicelist_new | ( | ) |
Create a new list of services
char* cg_upnp_servicetype_getidentifier | ( | char * | serviceType | ) |
Get the identifier-part of a service type string (usually "urn")
serviceType | A service type string (usually the result from cg_upnp_service_getservicetype) |
char* cg_upnp_servicetype_getschematype | ( | char * | serviceType | ) |
Get the schema type part of a service type string (without last colon) (ex. "urn:schemas-upnp-org:service:ContentDirectory")
serviceType | A service type string (usually the result from cg_upnp_service_getservicetype) |
char* cg_upnp_servicetype_getservice | ( | char * | serviceType | ) |
Get the service part of a service type string (usually just "service")
serviceType | A service type string (usually the result from cg_upnp_service_getservicetype) |
char* cg_upnp_servicetype_gettype | ( | char * | serviceType | ) |
Get the type part of a service type string (ex. "ContentDirectory")
serviceType | A service type string (usually the result from cg_upnp_service_getservicetype) |
char* cg_upnp_servicetype_geturn | ( | char * | serviceType | ) |
Get the URN part of a service type string (usually "schemas-upnp-org")
serviceType | A service type string (usually the result from cg_upnp_service_getservicetype) |
char* cg_upnp_servicetype_getversion | ( | char * | serviceType | ) |
Get the version part of a service type string (ex. "1")
serviceType | A service type string (usually the result from cg_upnp_service_getservicetype) |