Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00032 #ifndef PRESENTITY_H
00033 #define PRESENTITY_H
00034
00035 #include "../../str.h"
00036 #include "../../parser/msg_parser.h"
00037 #include "event_list.h"
00038
00039
00040 extern char prefix;
00041
00042 typedef struct presentity
00043 {
00044 int presid;
00045 str user;
00046 str domain;
00047 pres_ev_t* event;
00048 str etag;
00049 str* sender;
00050 time_t expires;
00051 time_t received_time;
00052 } presentity_t;
00053
00054
00055 presentity_t* new_presentity( str* domain,str* user,int expires,
00056 pres_ev_t* event, str* etag, str* sender);
00057
00058
00059 int update_presentity(struct sip_msg* msg,presentity_t* p,str* body,int t_new,
00060 int* sent_reply, char* sphere);
00061
00062
00063 void free_presentity(presentity_t* p);
00064
00065 char* generate_ETag(int publ_count);
00066
00067 int pres_htable_restore(void);
00068
00069 char* extract_sphere(str body);
00070
00071 char* get_sphere(str* pres_uri);
00072 typedef char* (*pres_get_sphere_t)(str* pres_uri);
00073
00074 int mark_presentity_for_delete(presentity_t *pres);
00075 int delete_presentity(presentity_t *pres);
00076 int delete_offline_presentities(str *pres_uri, pres_ev_t *event);
00077
00078 #endif
00079