]> err.no Git - sope/blob - sope-appserver/NGObjWeb/WebDAV/SoSubscription.h
renamed packages as discussed in the developer list
[sope] / sope-appserver / NGObjWeb / WebDAV / SoSubscription.h
1 /*
2   Copyright (C) 2000-2003 SKYRIX Software AG
3
4   This file is part of OGo
5
6   OGo is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with OGo; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21 // $Id$
22
23 #ifndef __NGObjWeb_SoSubscription_H__
24 #define __NGObjWeb_SoSubscription_H__
25
26 #import <Foundation/NSObject.h>
27 #import <Foundation/NSDate.h>
28
29 /*
30   SoSubscription
31   
32   This class holds the information of a single subscription. Usually you
33   will never access SoSubscription objects directly.
34
35   Subscription Types:
36     update
37     delete
38     move
39     any
40     update/newmember
41     pragma/<http...newmail>
42 */
43
44 @class NSString, NSURL, NSMutableDictionary;
45
46 @interface SoSubscription : NSObject
47 {
48   NSString       *sid;
49   NSURL          *object;
50   BOOL           trackChildren; /* depth header */
51   NSURL          *observer;
52   
53   NSTimeInterval delay;
54   NSTimeInterval lifetime;
55   NSDate         *expireDate;   /* now + lifetime */
56   NSString       *subscriptionType;
57   
58   unsigned       pending; /* keeps the number of events since last POLL */
59 }
60
61 - (id)initWithID:(NSString *)_sid
62   url:(NSURL *)_url observer:(NSURL *)_callback
63   type:(NSString *)_type delay:(NSTimeInterval)_delay
64   lifetime:(NSTimeInterval)_lifetime;
65
66 /* accessors */
67
68 - (NSDate *)expirationDate;
69 - (NSString *)subscriptionID;
70 - (BOOL)hasEventsPending;
71
72 /* operations */
73
74 - (BOOL)isValidForURL:(NSURL *)_url;
75 - (BOOL)isExpired;
76 - (BOOL)renewSubscription;
77 - (void)resetEvents;
78
79 @end
80
81 #endif /* __NGObjWeb_SoSubscription_H__ */