xref: /haiku/headers/private/notification/NotificationReceived.h (revision 1e60bdeab63fa7a57bc9a55b032052e95a18bd2c)
1 /*
2  * Copyright 2010, Haiku, Inc. All Rights Reserved.
3  * Copyright 2008-2009, Pier Luigi Fiorini. All Rights Reserved.
4  * Copyright 2004-2008, Michael Davidson. All Rights Reserved.
5  * Copyright 2004-2007, Mikael Eiman. All Rights Reserved.
6  * Distributed under the terms of the MIT License.
7  */
8 #ifndef _NOTIFICATION_RECEIVED_H
9 #define _NOTIFICATION_RECEIVED_H
10 
11 #include <Flattenable.h>
12 #include <Roster.h>
13 #include <String.h>
14 
15 class NotificationReceived : public BFlattenable {
16 public:
17 								NotificationReceived();
18 								NotificationReceived(const char* title, notification_type type,
19 									bool enabled = true);
20 								~NotificationReceived();
21 
22 	virtual	bool				AllowsTypeCode(type_code code) const;
23 	virtual	status_t			Flatten(void *buffer, ssize_t numBytes) const;
24 	virtual	ssize_t				FlattenedSize() const;
25 	virtual	bool				IsFixedSize() const;
26 	virtual	type_code			TypeCode() const;
27 	virtual	status_t			Unflatten(type_code code, const void *buffer,
28 								ssize_t numBytes);
29 
30 			const char*			Title();
31 			notification_type	Type();
32 			void				SetType(notification_type type);
33 			time_t				LastReceived();
34 			bool				Allowed();
35 
36 			void				SetTimeStamp(time_t time);
37 			void				UpdateTimeStamp();
38 
39 private:
40 			BString				fTitle;
41 			notification_type	fType;
42 			bool				fEnabled;
43 			time_t				fLastReceived;
44 };
45 
46 #endif	// _NOTIFICATION_RECEIVED_H
47