sipxtacklib  Version 3.3
SipPublishServerEventStateMgr.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2004-2006 SIPfoundry Inc.
3 // Licensed by SIPfoundry under the LGPL license.
4 //
5 // Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
6 // Licensed to SIPfoundry under a Contributor Agreement.
7 //
8 // $$
10 
11 #ifndef _SipPublishServerEventStateMgr_h_
12 #define _SipPublishServerEventStateMgr_h_
13 
14 // SYSTEM INCLUDES
15 
16 // APPLICATION INCLUDES
17 
18 #include <os/OsDefs.h>
19 #include <os/OsMsgQ.h>
20 #include <os/OsMutex.h>
21 #include <utl/UtlDefs.h>
22 #include <utl/UtlHashMap.h>
23 #include <utl/UtlHashBag.h>
24 
25 // DEFINES
26 // MACROS
27 // EXTERNAL FUNCTIONS
28 // EXTERNAL VARIABLES
29 // CONSTANTS
30 // STRUCTS
31 // FORWARD DECLARATIONS
32 class SipMessage;
33 class UtlString;
34 
35 // TYPEDEFS
36 
38 
43 {
44 /* //////////////////////////// PUBLIC //////////////////////////////////// */
45 public:
46 
47 
48 
49 /* ============================ CREATORS ================================== */
50 
53 
54 
56  virtual
58 
59 
60 /* ============================ MANIPULATORS ============================== */
61 
63  virtual void generateETag(UtlString& entity);
64 
66  void addPublish(UtlString& entity, UtlString& resourceId,
67  UtlString& eventTypeKey, int expiration);
68 
70  void updatePublish(UtlString& oldEntity, UtlString& entity, UtlString& resourceId,
71  UtlString& eventTypeKey, int expiration);
72 
74  void removePublish(UtlString& entity);
75 
77  void removeOldPublication(long oldEpochTimeSeconds);
78 
79 /* ============================ ACCESSORS ================================= */
80 
81 /* ============================ INQUIRY =================================== */
82 
84  virtual UtlBoolean publishExists(UtlString& entityTag);
85 
87  virtual UtlBoolean isExpired(UtlString& entityTag);
88 
90  virtual UtlBoolean checkExpiration(int* expiration);
91 
92 /* //////////////////////////// PROTECTED ///////////////////////////////// */
93 protected:
94 
95 /* //////////////////////////// PRIVATE /////////////////////////////////// */
96 private:
98  SipPublishServerEventStateMgr(const SipPublishServerEventStateMgr& rSipPublishServerEventStateMgr);
99 
102 
104  void lock();
105 
107  void unlock();
108 
109  OsMutex mEventStateMgrMutex;
110  int mMinExpiration;
111  int mDefaultExpiration;
112  int mMaxExpiration;
113 
114  // Container for the event states
115  UtlHashMap mEventStatesByEntityTag;
116 };
117 
118 /* ============================ INLINE METHODS ============================ */
119 
120 #endif // _SipPublishServerEventStateMgr_h_
void addPublish(UtlString &entity, UtlString &resourceId, UtlString &eventTypeKey, int expiration)
Add a new publication.
Definition: SipPublishServerEventStateMgr.cpp:116
virtual UtlBoolean isExpired(UtlString &entityTag)
inquire if the publish has already expired
Definition: SipPublishServerEventStateMgr.cpp:191
virtual UtlBoolean publishExists(UtlString &entityTag)
inquire if the publish exists
Definition: SipPublishServerEventStateMgr.cpp:175
virtual ~SipPublishServerEventStateMgr()
Destructor.
Definition: SipPublishServerEventStateMgr.cpp:92
virtual void generateETag(UtlString &entity)
Generate a new entity tag.
Definition: SipPublishServerEventStateMgr.cpp:111
Specialization of HttpMessage to contain and manipulate SIP messages.
Definition: SipMessage.h:343
void removePublish(UtlString &entity)
Remove old publication.
Definition: SipPublishServerEventStateMgr.cpp:132
void removeOldPublication(long oldEpochTimeSeconds)
Remove old publication that expired before given date.
Definition: SipPublishServerEventStateMgr.cpp:137
SipPublishServerEventStateMgr()
Default constructor.
Definition: SipPublishServerEventStateMgr.cpp:75
Class for maintaining PUBLISH event state information in publish server.
Definition: SipPublishServerEventStateMgr.h:42
virtual UtlBoolean checkExpiration(int *expiration)
inquire if the expiration is correct
Definition: SipPublishServerEventStateMgr.cpp:213
void updatePublish(UtlString &oldEntity, UtlString &entity, UtlString &resourceId, UtlString &eventTypeKey, int expiration)
Update the publication.
Definition: SipPublishServerEventStateMgr.cpp:122

sipXtackLib home page