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 55300 : static int GetMajor() { return major_; }
18 55300 : static int GetMinor() { return minor_; }
19 55300 : static int GetBuild() { return build_; }
20 55300 : static int GetPatch() { return patch_; }
21 55295 : static const char* GetEmbedder() { return embedder_; }
22 55300 : static bool IsCandidate() { return candidate_; }
23 758 : static uint32_t Hash() {
24 : return static_cast<uint32_t>(
25 758 : base::hash_combine(major_, minor_, build_, patch_));
26 : }
27 :
28 : // Calculate the V8 version string.
29 : static void GetString(Vector<char> str);
30 :
31 : // Calculate the SONAME for the V8 shared library.
32 : static void GetSONAME(Vector<char> str);
33 :
34 36 : static const char* GetVersion() { return version_string_; }
35 :
36 : private:
37 : // NOTE: can't make these really const because of test-version.cc.
38 : static int major_;
39 : static int minor_;
40 : static int build_;
41 : static int patch_;
42 : static const char* embedder_;
43 : static bool candidate_;
44 : static const char* soname_;
45 : static const char* version_string_;
46 :
47 : // In test-version.cc.
48 : friend void SetVersion(int major, int minor, int build, int patch,
49 : const char* embedder, bool candidate,
50 : const char* soname);
51 : };
52 :
53 : } // namespace internal
54 : } // namespace v8
55 :
56 : #endif // V8_VERSION_H_
|