cevent.h File Reference

#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)
CgUpnpEventListenerListcg_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 Documentation

#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

Parameters:
subReq The request to be checked
Returns:
True if request is subscription request, false otherwise

#define cg_upnp_event_subscription_isunsubscriberequest subReq   )     cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_UNSUBSCRIBE)
 

Checks if request type is unsubscription request

Parameters:
subReq The request to be checked
Returns:
True if request is unsubscription request

#define cg_upnp_event_subscription_request_delete subReq   )     cg_http_request_delete(subReq);
 

Subscription request destructor

Parameters:
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

Parameters:
subReq Subscription request
Returns:
Character array containing the callback URL

#define cg_upnp_event_subscription_request_gethost subReq   )     cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST)
 

Get host header value from subscription request

Parameters:
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

Parameters:
subReq Subscription request
Returns:
Character array containing the NT header value

#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

Parameters:
subReq Subscription request
Returns:
Character array containing the requested SID

#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

Parameters:
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

Parameters:
subReq Subscription request
Returns:
True if subscription request has callback URL, false otherwise

#define cg_upnp_event_subscription_request_hasnt subReq   )     cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_NT)
 

Checks if subscription request has NT

Parameters:
subReq Subscription request
Returns:
True if subscription request contains NT, false otherwise

#define cg_upnp_event_subscription_request_hassid subReq   )     cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_SID)
 

Checks if subscription object has SID

Parameters:
subReq Subscription request
Returns:
True if subscription has SID, false otherwise

 
#define cg_upnp_event_subscription_request_new  )     cg_http_request_new();
 

Subscription request constructor

Returns:
Pointer to newly created subsription request

#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

Parameters:
subReq Subscription request

#define cg_upnp_event_subscription_request_postresponse subReq,
subRes   )     cg_http_request_postresponse(subReq, subRes)
 

Send response to subscription request

Parameters:
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

Parameters:
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

Parameters:
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

Parameters:
subReq Subscription request
value Notification type

#define cg_upnp_event_subscription_response_delete subRes   )     cg_http_response_delete(subRes);
 

Destructor for subscription response

Parameters:
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

Parameters:
subRes Subscription request
Returns:
C string containing SID

#define cg_upnp_event_subscription_response_getstatuscode subRes,
code   )     cg_http_response_getstatuscode(subRes)
 

Get status code from subscription response object

Parameters:
subRes Subscription response
code Status code
Returns:
Status code
Bug:
Status code is not needed here! (It is not even passed to the wrapped function)

#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

Parameters:
subRes Subscription response
Returns:
C string containing the timeout

#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

Parameters:
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

Parameters:
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.

Parameters:
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

Parameters:
eventListenerList Event listener list

#define cg_upnp_eventlistenerlist_next eventListenerList   )     (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList)
 

Fetches next list element from event listener list

Parameters:
eventListenerList Event listener list

#define cg_upnp_eventlistenerlist_size eventListenerList   )     cg_list_size((CgList *)eventListenerList)
 

Get the size of the device list

Parameters:
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 Documentation

typedef void(* CG_UPNP_EVENT_LISTENER)(CgUpnpProperty *)
 

Type definition for event listener callback

typedef struct _CgUpnpEventListenerList CgUpnpEventListenerList
 

Type definition for event listener list

typedef CgHttpRequest CgUpnpSubscriptionRequest
 

Type definition for subsription request

typedef CgHttpResponse CgUpnpSubscriptionResponse
 

Type definition for subsrciption response


Function Documentation

char* cg_upnp_event_subscription_createsid char *  buf,
int  bufSize
 

Create SID for subscription

Parameters:
buf Character buffer where SID is created
bufSize Buffer size.
Returns:
Pointer to buffer containing SID

char* cg_upnp_event_subscription_getsid char *  headerValue  ) 
 

Get SID

Parameters:
headerValue Raw header C string
Returns:
C string containing SID

long cg_upnp_event_subscription_gettimeout char *  headerValue  ) 
 

Get event subscription timeout

Parameters:
headerValue Header value
Returns:
Timeout

void cg_upnp_event_subscription_request_setnewsubscription CgUpnpSubscriptionRequest subReq,
CgUpnpService service,
char *  callback,
long  timeout,
char *  remoteAddress
 

(Re)initializes subscription request

Parameters:
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

Parameters:
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

Parameters:
subReq Subscription request
sid SID (Subscription id)

void cg_upnp_event_subscription_request_settimeout CgUpnpSubscriptionRequest subReq,
long  timeout
 

Set timeout for subscription request

Parameters:
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

Parameters:
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

Parameters:
subRes Subscription response
sid Subscription ID

void cg_upnp_event_subscription_response_settimeout CgUpnpSubscriptionResponse subRes,
long  value
 

Set HTTP timeout for subscription response

Parameters:
subRes Subscription response
value Timeout

void cg_upnp_event_subscription_subscriberesponse_setresponse CgUpnpSubscriptionResponse subRes,
int  code
 

Set response code for subscription response

Parameters:
subRes Subscription response
code Response code

char* cg_upnp_event_subscription_tosidheaderstring char *  sid,
char *  buf,
int  bufSize
 

Creates SID header string

Parameters:
sid Character array containing the SID
buf A buffer where header string is created
bufSize Size of the used buffer
Returns:
Pointer to buffer containing SID header string

char* cg_upnp_event_subscription_totimeoutheaderstring long  time,
CgString buf
 

Create timeout header string

Parameters:
time Timeout
buf Buffer used when creating header string
Returns:
Timeout header C string

void cg_upnp_eventlistenerlist_add CgUpnpEventListenerList eventListenerList,
CG_UPNP_EVENT_LISTENER  listener
 

Add a listener to the event listener list

Parameters:
eventListenerList The event listener list
listener The listener to add

void cg_upnp_eventlistenerlist_delete CgUpnpEventListenerList eventListenerList  ) 
 

Delete a event listener list.

Parameters:
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.

Parameters:
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

Parameters:
eventListenerList The event listener list
listener The listener to remove


Generated on Thu Jun 29 13:33:28 2006 for CyberLinkC by  doxygen 1.4.6