1/*
2 * Copyright 2011, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef VERSION_H
6#define VERSION_H
7
8
9#include <package/PackageResolvableOperator.h>
10#include <SupportDefs.h>
11
12#include "String.h"
13
14
15using namespace BPackageKit;
16
17
18class Version {
19public:
20								Version();
21								~Version();
22
23			status_t			Init(const char* major, const char* minor,
24									const char* micro, const char* preRelease,
25									uint32 revision);
26
27	static	status_t			Create(const char* major, const char* minor,
28									const char* micro, const char* preRelease,
29									uint32 revision, Version*& _version);
30
31			int					Compare(const Version& other) const;
32			bool				Compare(BPackageResolvableOperator op,
33									const Version& other) const;
34
35			size_t				ToString(char* buffer, size_t bufferSize) const;
36									// returns how big the buffer should have
37									// been (excluding the terminating null)
38
39private:
40			String				fMajor;
41			String				fMinor;
42			String				fMicro;
43			String				fPreRelease;
44			uint32				fRevision;
45};
46
47
48#endif	// VERSION_H
49