Line data Source code
1 : // Copyright 2009 the V8 project 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 V8_VERSION_H_
6 : #define V8_VERSION_H_
7 :
8 : #include "src/base/functional.h"
9 : #include "src/vector.h"
10 :
11 : namespace v8 {
12 : namespace internal {
13 :
14 : class Version {
15 : public:
16 : // Return the various version components.
17 192 : static int GetMajor() { return major_; }
18 192 : static int GetMinor() { return minor_; }
19 192 : static int GetBuild() { return build_; }
20 192 : static int GetPatch() { return patch_; }
21 192 : static bool IsCandidate() { return candidate_; }
22 168882 : static uint32_t Hash() {
23 : return static_cast<uint32_t>(
24 168882 : base::hash_combine(major_, minor_, build_, patch_));
25 : }
26 :
27 : // Calculate the V8 version string.
28 : static void GetString(Vector<char> str);
29 :
30 : // Calculate the SONAME for the V8 shared library.
31 : static void GetSONAME(Vector<char> str);
32 :
33 52 : static const char* GetVersion() { return version_string_; }
34 :
35 : private:
36 : // NOTE: can't make these really const because of test-version.cc.
37 : static int major_;
38 : static int minor_;
39 : static int build_;
40 : static int patch_;
41 : static bool candidate_;
42 : static const char* soname_;
43 : static const char* version_string_;
44 :
45 : // In test-version.cc.
46 : friend void SetVersion(int major, int minor, int build, int patch,
47 : bool candidate, const char* soname);
48 : };
49 :
50 : } // namespace internal
51 : } // namespace v8
52 :
53 : #endif // V8_VERSION_H_
|