MCPcopy Create free account
hub / github.com/GameTechDev/PresentMon / CefToV8Value

Function CefToV8Value

IntelPresentMon/AppCef/source/util/CefValues.cpp:64–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62 }
63
64 CefRefPtr<CefV8Value> CefToV8Value(CefValue& cef)
65 {
66 using Type = CefValueType;
67 CefRefPtr<CefV8Value> v8;
68 switch (cef.GetType())
69 {
70 case Type::VTYPE_BOOL:
71 v8 = CefV8Value::CreateBool(cef.GetBool());
72 break;
73 case Type::VTYPE_INT:
74 v8 = CefV8Value::CreateInt(cef.GetInt());
75 break;
76 case Type::VTYPE_DOUBLE:
77 v8 = CefV8Value::CreateDouble(cef.GetDouble());
78 break;
79 case Type::VTYPE_NULL:
80 v8 = CefV8Value::CreateNull();
81 break;
82 case Type::VTYPE_STRING:
83 v8 = CefV8Value::CreateString(cef.GetString());
84 break;
85 case Type::VTYPE_LIST:
86 {
87 auto list = cef.GetList();
88 v8 = CefV8Value::CreateArray((int)list->GetSize());
89 for (size_t i = 0; i < list->GetSize(); i++)
90 {
91 v8->SetValue(int(i), CefToV8Value(*list->GetValue(i)));
92 }
93 }
94 break;
95 case Type::VTYPE_DICTIONARY:
96 {
97 auto dict = cef.GetDictionary();
98 v8 = CefV8Value::CreateObject(nullptr, nullptr);
99 CefDictionaryValue::KeyList keys;
100 dict->GetKeys(keys);
101 for (auto& k : keys)
102 {
103 v8->SetValue(k, CefToV8Value(*dict->GetValue(k)), CefV8Value::PropertyAttribute::V8_PROPERTY_ATTRIBUTE_NONE);
104 }
105 }
106 break;
107 default:
108 pmlog_warn("Unknown CEF type cannot convert");
109 }
110 return v8;
111 }
112
113 std::string CefValueTypeToString(CefValueType type) noexcept
114 {

Callers 1

ResolveInvocationMethod · 0.85

Calls 3

GetSizeMethod · 0.80
GetKeysMethod · 0.80
GetTypeMethod · 0.45

Tested by

no test coverage detected