blob: 6e12bb78369f1f4398546870e95b5fe3c1a621ef [file] [log] [blame]
[email protected]19b8d82f2009-01-29 19:18:571// Copyright (c) 2009 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef BASE_VERSION_H_
6#define BASE_VERSION_H_
7
8#include <string>
9#include <vector>
10
11#include "base/basictypes.h"
12
13class Version {
14public:
15
16 // The version string must be made up of 1 or more uint16's separated
17 // by '.'. Returns NULL if string is not in this format.
18 // Caller is responsible for freeing the Version object once done.
19 static Version* GetVersionFromString(const std::wstring& version_str);
20 static Version* GetVersionFromString(const std::string& version_str);
21
22 ~Version() {}
23
24 bool Equals(const Version& other) const;
25
26 // Returns -1, 0, 1 for <, ==, >.
27 int CompareTo(const Version& other) const;
28
29 // Return the string representation of this version.
30 const std::string GetString() const;
31
32 const std::vector<uint16>& components() const { return components_; }
33
34private:
35 Version() {}
36 bool InitFromString(const std::string& version_str);
37
38 std::vector<uint16> components_;
39
40 DISALLOW_COPY_AND_ASSIGN(Version);
41};
42
43#endif // BASE_VERSION_H_
44