blob: 0eaafd64dd254b3e4e2c1d245e5e9b5eab2dfbb8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
//
// shimselector.h
//
// Class that select the best runtime
//
// Note: very similar to RuntimeSelector but is so simple that adding a common template parent class is not worth it
//
// Note: must be platform independent
//
// ======================================================================================
#ifndef SHIMSELECTOR_H
#define SHIMSELECTOR_H
// does not currently need to add anything to VersionAndLocationInfo
#include "versionandlocationinfo.h"
typedef VersionAndLocationInfo ShimInfo;
class ShimSelector
{
protected:
VersionInfo m_Baseline; // base line to compare against
ShimInfo m_Best; // best found so far
bool m_bHasSomething; // has any data
public:
//constructor
ShimSelector();
// whether the given info is better than the base line
bool IsAcceptable(const ShimInfo& shimInfo) const;
// add shim info
HRESULT Add(const ShimInfo& shimInfo);
//set the base line
void SetBaseline(const VersionInfo& version);
// get the best found
ShimInfo GetBest();
// has any useful data
bool HasUsefulShimInfo();
// is 1st better than 2nd
static bool IsBetter(const ShimInfo& ri1, const ShimInfo& ri2);
};
#include "shimselector.inl"
#endif // SHIMSELECTOR_H
|