xref: /haiku/src/apps/haikudepot/server/StandardMetaData.h (revision 072d3935c2497638e9c2502f574c133caeba9d3d)
1 /*
2  * Copyright 2017-2020, Andrew Lindesay <apl@lindesay.co.nz>.
3  * All rights reserved. Distributed under the terms of the MIT License.
4  */
5 #ifndef STANDARD_META_DATA_H
6 #define STANDARD_META_DATA_H
7 
8 #include <DateTime.h>
9 #include <File.h>
10 #include <HttpHeaders.h>
11 #include <Locker.h>
12 #include <String.h>
13 
14 
15 /* This class models (some of) the meta-data that is bundled into data that is
16  * relayed from the HaikuDepotServer application server down to the client.
17  * This includes the tar-ball of icons as well as "bulk data" such as streams of
18  * information about repositories and packages.
19  */
20 
21 
22 class StandardMetaData {
23 public:
24 										StandardMetaData();
25 
26 			uint64_t					GetCreateTimestamp() const;
27 			BDateTime					GetCreateTimestampAsDateTime() const;
28 			void						SetCreateTimestamp(uint64_t value);
29 
30 			uint64_t					GetDataModifiedTimestamp() const;
31 			BDateTime					GetDataModifiedTimestampAsDateTime()
32 											const;
33 			void						SetDataModifiedTimestamp(
34 											uint64_t value);
35 
36 			bool						IsPopulated() const;
37 private:
38 	static	BDateTime					_CreateDateTime(
39 											uint64_t millisSinceEpoc);
40 
41 private:
42 			uint64_t					fCreateTimestamp;
43 			uint64_t					fDataModifiedTimestamp;
44 };
45 
46 
47 #endif // STANDARD_META_DATA_H
48