1 // 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 13 class Version { 14 public: 15 // The version string must be made up of 1 or more uint16's separated 16 // by '.'. Returns NULL if string is not in this format. 17 // Caller is responsible for freeing the Version object once done. 18 static Version* GetVersionFromString(const std::wstring& version_str); 19 static Version* GetVersionFromString(const std::string& version_str); 20 21 ~Version() {} 22 23 bool Equals(const Version& other) const; 24 25 // Returns -1, 0, 1 for <, ==, >. 26 int CompareTo(const Version& other) const; 27 28 // Return the string representation of this version. 29 const std::string GetString() const; 30 31 const std::vector<uint16>& components() const { return components_; } 32 33 private: 34 Version() {} 35 bool InitFromString(const std::string& version_str); 36 37 std::vector<uint16> components_; 38 }; 39 40 #endif // BASE_VERSION_H_ 41