#include <cybergarage/typedef.h>#include <cybergarage/http/chttp.h>#include <cybergarage/util/cstring.h>#include <cybergarage/util/clist.h>#include <cybergarage/upnp/event/cproperty.h>#include <cybergarage/upnp/cservice.h>Data Structures | |
| struct | _CgUpnpEventListenerList |
Defines | |
| #define | CG_UPNP_SUBSCRIPTION_SID_SIZE (((4+1)*4) + 1) |
| #define | CG_UPNP_SUBSCRIPTION_SID_HEADER_SIZE (5 + CG_UPNP_SUBSCRIPTION_SID_SIZE) |
| #define | CG_UPNP_SUBSCRIPTION_XMLNS "urn:schemas-upnp-org:event-1-0" |
| #define | CG_UPNP_SUBSCRIPTION_TIMEOUT_HEADER "Second-" |
| #define | CG_UPNP_SUBSCRIPTION_INFINITE_STRING "infinite" |
| #define | CG_UPNP_SUBSCRIPTION_INFINITE_VALUE (-1) |
| #define | CG_UPNP_SUBSCRIPTION_UUID "uuid:" |
| #define | CG_UPNP_SUBSCRIPTION_CALLBACK_START_WITH "<" |
| #define | CG_UPNP_SUBSCRIPTION_CALLBACK_END_WITH ">" |
| #define | CG_UPNP_SUBSCRIPTION_DELAY 30 |
| #define | CG_UPNP_EVENT_MAX_SEQ 2147483647 |
| #define | CG_UPNP_SUBSCRIPTION_MAX_TIMEOUT 300 |
| #define | cg_upnp_event_subscription_request_new() cg_http_request_new(); |
| #define | cg_upnp_event_subscription_request_delete(subReq) cg_http_request_delete(subReq); |
| #define | cg_upnp_event_subscription_issubscriberequest(subReq) cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_SUBSCRIBE) |
| #define | cg_upnp_event_subscription_isunsubscriberequest(subReq) cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_UNSUBSCRIBE) |
| #define | cg_upnp_event_subscription_request_getsid(subReq) cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_SID)) |
| #define | cg_upnp_event_subscription_request_hassid(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_SID) |
| #define | cg_upnp_event_subscription_request_setnt(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_NT, value) |
| #define | cg_upnp_event_subscription_request_getnt(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_NT) |
| #define | cg_upnp_event_subscription_request_hasnt(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_NT) |
| #define | cg_upnp_event_subscription_request_setcallback(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK, value) |
| #define | cg_upnp_event_subscription_request_getcallback(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK) |
| #define | cg_upnp_event_subscription_request_hascallback(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK) |
| #define | cg_upnp_event_subscription_request_gettimeout(subReq) cg_upnp_event_subscription_gettimeout(cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_TIMEOUT)) |
| #define | cg_upnp_event_subscription_request_sethost(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST, value) |
| #define | cg_upnp_event_subscription_request_gethost(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST) |
| #define | cg_upnp_event_subscription_request_post(subReq) cg_http_request_post(subReq, cg_net_url_gethost(cg_http_request_getposturl(subReq)), cg_net_url_getport(cg_http_request_getposturl(subReq))) |
| #define | cg_upnp_event_subscription_request_postresponse(subReq, subRes) cg_http_request_postresponse(subReq, subRes) |
| #define | cg_upnp_event_subscription_response_new() cg_http_response_new(); |
| #define | cg_upnp_event_subscription_response_delete(subRes) cg_http_response_delete(subRes); |
| #define | cg_upnp_event_subscription_response_issuccessful(subRes) cg_http_response_issuccessful(subRes) |
| #define | cg_upnp_event_subscription_response_setstatuscode(subRes, code) cg_http_response_setstatuscode(subRes, code) |
| #define | cg_upnp_event_subscription_response_getstatuscode(subRes, code) cg_http_response_getstatuscode(subRes) |
| #define | cg_upnp_event_subscription_response_getsid(subRes) cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue(((CgHttpPacket*)subRes), CG_HTTP_SID)) |
| #define | cg_upnp_event_subscription_response_gettimeout(subRes) cg_upnp_event_subscription_gettimeout(cg_http_packet_getheadervalue(((CgHttpPacket*)subRes), CG_HTTP_TIMEOUT)) |
| #define | cg_upnp_eventlistenerlist_clear(eventListenerList) cg_list_clear((CgList *)eventListenerList, (CG_LIST_DESTRUCTORFUNC)free) |
| #define | cg_upnp_eventlistenerlist_size(eventListenerList) cg_list_size((CgList *)eventListenerList) |
| #define | cg_upnp_eventlistenerlist_gets(eventListenerList) (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList) |
| #define | cg_upnp_eventlistenerlist_next(eventListenerList) (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList) |
Typedefs | |
| typedef CgHttpRequest | CgUpnpSubscriptionRequest |
| typedef CgHttpResponse | CgUpnpSubscriptionResponse |
| typedef void(*) | CG_UPNP_EVENT_LISTENER (CgUpnpProperty *) |
| typedef _CgUpnpEventListenerList | CgUpnpEventListenerList |
Functions | |
| char * | cg_upnp_event_subscription_totimeoutheaderstring (long time, CgString *buf) |
| long | cg_upnp_event_subscription_gettimeout (char *headerValue) |
| char * | cg_upnp_event_subscription_createsid (char *buf, int bufSize) |
| char * | cg_upnp_event_subscription_tosidheaderstring (char *sid, char *buf, int bufSize) |
| char * | cg_upnp_event_subscription_getsid (char *headerValue) |
| void | cg_upnp_event_subscription_request_setsid (CgUpnpSubscriptionRequest *subReq, char *sid) |
| void | cg_upnp_event_subscription_request_settimeout (CgUpnpSubscriptionRequest *subReq, long timeout) |
| void | cg_upnp_event_subscription_request_setnewsubscription (CgUpnpSubscriptionRequest *subReq, CgUpnpService *service, char *callback, long timeout, char *remoteAddress) |
| void | cg_upnp_event_subscription_request_setrenewsubscription (CgUpnpSubscriptionRequest *subReq, CgUpnpService *service, char *uuid, long timeout, char *remoteAddress) |
| void | cg_upnp_event_subscription_request_setunsubscription (CgUpnpSubscriptionRequest *subReq, CgUpnpService *service, char *remoteAddress) |
| void | cg_upnp_event_subscription_response_setsid (CgUpnpSubscriptionResponse *subRes, char *sid) |
| void | cg_upnp_event_subscription_response_settimeout (CgUpnpSubscriptionResponse *subRes, long value) |
| void | cg_upnp_event_subscription_subscriberesponse_setresponse (CgUpnpSubscriptionResponse *subRes, int code) |
| CgUpnpEventListenerList * | cg_upnp_eventlistenerlist_new () |
| void | cg_upnp_eventlistenerlist_delete (CgUpnpEventListenerList *eventListenerList) |
| void | cg_upnp_eventlistenerlist_remove (CgUpnpEventListenerList *eventListenerList, CG_UPNP_EVENT_LISTENER listener) |
| void | cg_upnp_eventlistenerlist_add (CgUpnpEventListenerList *eventListenerList, CG_UPNP_EVENT_LISTENER listener) |
| void | cg_upnp_eventlistenerlist_notify (CgUpnpEventListenerList *eventListenerList, CgUpnpProperty *property) |
| #define CG_UPNP_EVENT_MAX_SEQ 2147483647 |
Definition for maximum event sequence number
| #define cg_upnp_event_subscription_issubscriberequest | ( | subReq | ) | cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_SUBSCRIBE) |
Checks if request type is subscription request
| subReq | The request to be checked |
| #define cg_upnp_event_subscription_isunsubscriberequest | ( | subReq | ) | cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_UNSUBSCRIBE) |
Checks if request type is unsubscription request
| subReq | The request to be checked |
| #define cg_upnp_event_subscription_request_delete | ( | subReq | ) | cg_http_request_delete(subReq); |
Subscription request destructor
| subReq | Reference to the subscription request to be deleted |
| #define cg_upnp_event_subscription_request_getcallback | ( | subReq | ) | cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK) |
Get subscription callback URL
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_gethost | ( | subReq | ) | cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST) |
Get host header value from subscription request
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_getnt | ( | subReq | ) | cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_NT) |
Get NT from subscription request
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_getsid | ( | subReq | ) | cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_SID)) |
Get sid from subscription request
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_gettimeout | ( | subReq | ) | cg_upnp_event_subscription_gettimeout(cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_TIMEOUT)) |
Get timeout value from subscription request
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_hascallback | ( | subReq | ) | cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK) |
Checks if subscription request has callback URL
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_hasnt | ( | subReq | ) | cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_NT) |
Checks if subscription request has NT
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_hassid | ( | subReq | ) | cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_SID) |
Checks if subscription object has SID
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_new | ( | ) | cg_http_request_new(); |
Subscription request constructor
| #define cg_upnp_event_subscription_request_post | ( | subReq | ) | cg_http_request_post(subReq, cg_net_url_gethost(cg_http_request_getposturl(subReq)), cg_net_url_getport(cg_http_request_getposturl(subReq))) |
Send subscription request to device
| subReq | Subscription request |
| #define cg_upnp_event_subscription_request_postresponse | ( | subReq, | |||
| subRes | ) | cg_http_request_postresponse(subReq, subRes) |
Send response to subscription request
| subReq | Subscription request | |
| subRes | Subscription response |
| #define cg_upnp_event_subscription_request_setcallback | ( | subReq, | |||
| value | ) | cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK, value) |
Set subscription request callback URL
| subReq | Subscription request | |
| value | Callback URL string |
| #define cg_upnp_event_subscription_request_sethost | ( | subReq, | |||
| value | ) | cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST, value) |
Set HTTP host header value
| subReq | Subscription request | |
| value | HTTP Host: header content |
| #define cg_upnp_event_subscription_request_setnt | ( | subReq, | |||
| value | ) | cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_NT, value) |
Set NT (Notification target) for subscription request
| subReq | Subscription request | |
| value | Notification type |
| #define cg_upnp_event_subscription_response_delete | ( | subRes | ) | cg_http_response_delete(subRes); |
Destructor for subscription response
| subRes | Subscription response |
| #define cg_upnp_event_subscription_response_getsid | ( | subRes | ) | cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue(((CgHttpPacket*)subRes), CG_HTTP_SID)) |
Get SID
| subRes | Subscription request |
| #define cg_upnp_event_subscription_response_getstatuscode | ( | subRes, | |||
| code | ) | cg_http_response_getstatuscode(subRes) |
Get status code from subscription response object
| subRes | Subscription response | |
| code | Status code |
| #define cg_upnp_event_subscription_response_gettimeout | ( | subRes | ) | cg_upnp_event_subscription_gettimeout(cg_http_packet_getheadervalue(((CgHttpPacket*)subRes), CG_HTTP_TIMEOUT)) |
Get timeout value from subscription response
| subRes | Subscription response |
| #define cg_upnp_event_subscription_response_issuccessful | ( | subRes | ) | cg_http_response_issuccessful(subRes) |
Checks if subscription was successfull by checking status code from subscription response
| subRes | Subscription response |
| #define cg_upnp_event_subscription_response_new | ( | ) | cg_http_response_new(); |
Constructor for subscription response
| #define cg_upnp_event_subscription_response_setstatuscode | ( | subRes, | |||
| code | ) | cg_http_response_setstatuscode(subRes, code) |
Set status code for subscription response
| subRes | Subscription response | |
| code | Status code |
| #define cg_upnp_eventlistenerlist_clear | ( | eventListenerList | ) | cg_list_clear((CgList *)eventListenerList, (CG_LIST_DESTRUCTORFUNC)free) |
Clear the contents of a event listener list.
| eventListenerList | The device list to clear |
| #define cg_upnp_eventlistenerlist_gets | ( | eventListenerList | ) | (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList) |
Fetches next list element from event listener list
| eventListenerList | Event listener list |
| #define cg_upnp_eventlistenerlist_next | ( | eventListenerList | ) | (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList) |
Fetches next list element from event listener list
| eventListenerList | Event listener list |
| #define cg_upnp_eventlistenerlist_size | ( | eventListenerList | ) | cg_list_size((CgList *)eventListenerList) |
Get the size of the device list
| eventListenerList | The device list |
| #define CG_UPNP_SUBSCRIPTION_CALLBACK_END_WITH ">" |
Definition for subscription callback end tag
| #define CG_UPNP_SUBSCRIPTION_CALLBACK_START_WITH "<" |
Definition for subscription callback start tag
| #define CG_UPNP_SUBSCRIPTION_DELAY 30 |
Definition for subscription delay
| #define CG_UPNP_SUBSCRIPTION_INFINITE_STRING "infinite" |
Definition for infinite string in subscription
| #define CG_UPNP_SUBSCRIPTION_INFINITE_VALUE (-1) |
Definition for infinite value in subscription
| #define CG_UPNP_SUBSCRIPTION_MAX_TIMEOUT 300 |
Definition for maximum upnp subscription timeout
| #define CG_UPNP_SUBSCRIPTION_SID_HEADER_SIZE (5 + CG_UPNP_SUBSCRIPTION_SID_SIZE) |
Definition for SID header size
| #define CG_UPNP_SUBSCRIPTION_SID_SIZE (((4+1)*4) + 1) |
Definition for SID size
| #define CG_UPNP_SUBSCRIPTION_TIMEOUT_HEADER "Second-" |
Definition for subscription timeout header prefix
| #define CG_UPNP_SUBSCRIPTION_UUID "uuid:" |
Definition for subscription uuid prefix
| #define CG_UPNP_SUBSCRIPTION_XMLNS "urn:schemas-upnp-org:event-1-0" |
Definition for subscription xml namespace
| typedef void(*) CG_UPNP_EVENT_LISTENER(CgUpnpProperty *) |
Type definition for event listener callback
| typedef struct _CgUpnpEventListenerList CgUpnpEventListenerList |
Type definition for event listener list
Type definition for subsription request
Type definition for subsrciption response
| char* cg_upnp_event_subscription_createsid | ( | char * | buf, | |
| int | bufSize | |||
| ) |
Create SID for subscription
| buf | Character buffer where SID is created | |
| bufSize | Buffer size. |
| char* cg_upnp_event_subscription_getsid | ( | char * | headerValue | ) |
Get SID
| headerValue | Raw header C string |
| long cg_upnp_event_subscription_gettimeout | ( | char * | headerValue | ) |
Get event subscription timeout
| headerValue | Header value |
| void cg_upnp_event_subscription_request_setnewsubscription | ( | CgUpnpSubscriptionRequest * | subReq, | |
| CgUpnpService * | service, | |||
| char * | callback, | |||
| long | timeout, | |||
| char * | remoteAddress | |||
| ) |
(Re)initializes subscription request
| subReq | Subscription request | |
| service | Service to be subscribed | |
| callback | URL to be called when service state changes | |
| timeout | Subscription timeout | |
| remoteAddress | HTTP Host: header content |
| void cg_upnp_event_subscription_request_setrenewsubscription | ( | CgUpnpSubscriptionRequest * | subReq, | |
| CgUpnpService * | service, | |||
| char * | uuid, | |||
| long | timeout, | |||
| char * | remoteAddress | |||
| ) |
(Re)initializes subscription request to be renewal request
| subReq | Subscription request | |
| service | Service to be subscribed | |
| uuid | Devices unique identification string | |
| timeout | Subscription timeout | |
| remoteAddress | HTTP Host: header content |
| void cg_upnp_event_subscription_request_setsid | ( | CgUpnpSubscriptionRequest * | subReq, | |
| char * | sid | |||
| ) |
Set sid to subscription request
| subReq | Subscription request | |
| sid | SID (Subscription id) |
| void cg_upnp_event_subscription_request_settimeout | ( | CgUpnpSubscriptionRequest * | subReq, | |
| long | timeout | |||
| ) |
Set timeout for subscription request
| subReq | Subscription request | |
| timeout | Timeout value for subscription request |
| void cg_upnp_event_subscription_request_setunsubscription | ( | CgUpnpSubscriptionRequest * | subReq, | |
| CgUpnpService * | service, | |||
| char * | remoteAddress | |||
| ) |
(Re)initializes subscription request to be unsubscription request
| subReq | Subscription request | |
| service | Service where to be unsubscribed | |
| remoteAddress | HTTP Host: header content |
| void cg_upnp_event_subscription_response_setsid | ( | CgUpnpSubscriptionResponse * | subRes, | |
| char * | sid | |||
| ) |
Set SID (Subscription ID) for response
| subRes | Subscription response | |
| sid | Subscription ID |
| void cg_upnp_event_subscription_response_settimeout | ( | CgUpnpSubscriptionResponse * | subRes, | |
| long | value | |||
| ) |
Set HTTP timeout for subscription response
| subRes | Subscription response | |
| value | Timeout |
| void cg_upnp_event_subscription_subscriberesponse_setresponse | ( | CgUpnpSubscriptionResponse * | subRes, | |
| int | code | |||
| ) |
Set response code for subscription response
| subRes | Subscription response | |
| code | Response code |
| char* cg_upnp_event_subscription_tosidheaderstring | ( | char * | sid, | |
| char * | buf, | |||
| int | bufSize | |||
| ) |
Creates SID header string
| sid | Character array containing the SID | |
| buf | A buffer where header string is created | |
| bufSize | Size of the used buffer |
| char* cg_upnp_event_subscription_totimeoutheaderstring | ( | long | time, | |
| CgString * | buf | |||
| ) |
Create timeout header string
| time | Timeout | |
| buf | Buffer used when creating header string |
| void cg_upnp_eventlistenerlist_add | ( | CgUpnpEventListenerList * | eventListenerList, | |
| CG_UPNP_EVENT_LISTENER | listener | |||
| ) |
Add a listener to the event listener list
| eventListenerList | The event listener list | |
| listener | The listener to add |
| void cg_upnp_eventlistenerlist_delete | ( | CgUpnpEventListenerList * | eventListenerList | ) |
Delete a event listener list.
| eventListenerList | The event listener list to delete |
| CgUpnpEventListenerList* cg_upnp_eventlistenerlist_new | ( | ) |
Create a new event listener list
| void cg_upnp_eventlistenerlist_notify | ( | CgUpnpEventListenerList * | eventListenerList, | |
| CgUpnpProperty * | property | |||
| ) |
Call all event listeners in the list with the given evented data.
| eventListenerList | The list to iterate thru | |
| property | The property that has been evented |
| void cg_upnp_eventlistenerlist_remove | ( | CgUpnpEventListenerList * | eventListenerList, | |
| CG_UPNP_EVENT_LISTENER | listener | |||
| ) |
Remove a listener from the event listener list
| eventListenerList | The event listener list | |
| listener | The listener to remove |
1.4.7