本文整理汇总了C++中immutabledictionary::MapType类的典型用法代码示例。如果您正苦于以下问题:C++ MapType类的具体用法?C++ MapType怎么用?C++ MapType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MapType类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: create
RefPtr<API::Object> UserData::transform(API::Object* object, const std::function<RefPtr<API::Object> (const API::Object&)> transformer)
{
if (!object)
return nullptr;
if (object->type() == API::Object::Type::Array) {
auto& array = static_cast<API::Array&>(*object);
Vector<RefPtr<API::Object>> elements;
elements.reserveInitialCapacity(array.elements().size());
for (const auto& element : array.elements())
elements.uncheckedAppend(transform(element.get(), transformer));
return API::Array::create(std::move(elements));
}
if (object->type() == API::Object::Type::Dictionary) {
auto& dictionary = static_cast<ImmutableDictionary&>(*object);
ImmutableDictionary::MapType map;
for (const auto& keyValuePair : dictionary.map())
map.add(keyValuePair.key, transform(keyValuePair.value.get(), transformer));
return ImmutableDictionary::create(std::move(map));
}
if (auto transformedObject = transformer(*object))
return transformedObject;
return object;
}
示例2: willSubmitForm
bool WebFormClient::willSubmitForm(WebPageProxy* page, WebFrameProxy* frame, WebFrameProxy* sourceFrame, const Vector<std::pair<String, String>>& textFieldValues, API::Object* userData, WebFormSubmissionListenerProxy* listener)
{
if (!m_client.willSubmitForm)
return false;
ImmutableDictionary::MapType map;
for (size_t i = 0; i < textFieldValues.size(); ++i)
map.set(textFieldValues[i].first, WebString::create(textFieldValues[i].second));
RefPtr<ImmutableDictionary> textFieldsMap = ImmutableDictionary::adopt(map);
m_client.willSubmitForm(toAPI(page), toAPI(frame), toAPI(sourceFrame), toAPI(textFieldsMap.get()), toAPI(userData), toAPI(listener), m_client.clientInfo);
return true;
}
示例3: create
PassRefPtr<ImmutableDictionary> createPluginInformationDictionary(const String& mimeType, const String& frameURLString, const String& pageURLString)
{
ImmutableDictionary::MapType map;
if (!frameURLString.isEmpty())
map.set(pluginInformationFrameURLKey(), API::URL::create(frameURLString));
if (!mimeType.isEmpty())
map.set(pluginInformationMIMETypeKey(), API::String::create(mimeType));
if (!pageURLString.isEmpty())
map.set(pluginInformationPageURLKey(), API::URL::create(pageURLString));
return ImmutableDictionary::create(std::move(map));
}
示例4: willSendSubmitEvent
void InjectedBundlePageFormClient::willSendSubmitEvent(WebPage* page, HTMLFormElement* formElement, WebFrame* frame, WebFrame* sourceFrame, const Vector<std::pair<String, String>>& values)
{
if (!m_client.willSendSubmitEvent)
return;
RefPtr<InjectedBundleNodeHandle> nodeHandle = InjectedBundleNodeHandle::getOrCreate(formElement);
ImmutableDictionary::MapType map;
for (size_t i = 0; i < values.size(); ++i)
map.set(values[i].first, API::String::create(values[i].second));
auto textFieldsMap = ImmutableDictionary::create(std::move(map));
m_client.willSendSubmitEvent(toAPI(page), toAPI(nodeHandle.get()), toAPI(frame), toAPI(sourceFrame), toAPI(textFieldsMap.get()), m_client.base.clientInfo);
}
示例5: adopt
PassRefPtr<ImmutableDictionary> PlugInAutoStartProvider::autoStartOriginsTableCopy() const
{
ImmutableDictionary::MapType map;
AutoStartTable::const_iterator end = m_autoStartTable.end();
double now = currentTime();
for (AutoStartTable::const_iterator it = m_autoStartTable.begin(); it != end; ++it) {
ImmutableDictionary::MapType hashMap;
PlugInAutoStartOriginHash::const_iterator valueEnd = it->value.end();
for (PlugInAutoStartOriginHash::const_iterator valueIt = it->value.begin(); valueIt != valueEnd; ++valueIt) {
if (now > valueIt->value)
continue;
hashMap.set(String::number(valueIt->key), WebDouble::create(valueIt->value));
}
if (hashMap.size())
map.set(it->key, ImmutableDictionary::adopt(hashMap));
}
return ImmutableDictionary::adopt(map);
}
示例6: adoptRef
PassRefPtr<WebPageProxy> WebUIClient::createNewPage(WebPageProxy* page, const WindowFeatures& windowFeatures, WebEvent::Modifiers modifiers, WebMouseEvent::Button button)
{
if (!m_client.createNewPage)
return 0;
ImmutableDictionary::MapType map;
if (windowFeatures.xSet)
map.set("x", WebDouble::create(windowFeatures.x));
if (windowFeatures.ySet)
map.set("y", WebDouble::create(windowFeatures.y));
if (windowFeatures.widthSet)
map.set("width", WebDouble::create(windowFeatures.width));
if (windowFeatures.heightSet)
map.set("height", WebDouble::create(windowFeatures.height));
map.set("menuBarVisible", WebBoolean::create(windowFeatures.menuBarVisible));
map.set("statusBarVisible", WebBoolean::create(windowFeatures.statusBarVisible));
map.set("toolBarVisible", WebBoolean::create(windowFeatures.toolBarVisible));
map.set("scrollbarsVisible", WebBoolean::create(windowFeatures.scrollbarsVisible));
map.set("resizable", WebBoolean::create(windowFeatures.resizable));
map.set("fullscreen", WebBoolean::create(windowFeatures.fullscreen));
map.set("dialog", WebBoolean::create(windowFeatures.dialog));
RefPtr<ImmutableDictionary> featuresMap = ImmutableDictionary::adopt(map);
return adoptRef(toImpl(m_client.createNewPage(toAPI(page), toAPI(featuresMap.get()), toAPI(modifiers), toAPI(button), m_client.clientInfo)));
}
示例7: adoptRef
PassRefPtr<WebPageProxy> WebUIClient::createNewPage(WebPageProxy* page, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, WebEvent::Modifiers modifiers, WebMouseEvent::Button button)
{
if (!m_client.version && !m_client.createNewPage_deprecatedForUseWithV0)
return 0;
if (m_client.version == kWKPageUIClientCurrentVersion && !m_client.createNewPage)
return 0;
ImmutableDictionary::MapType map;
if (windowFeatures.xSet)
map.set("x", WebDouble::create(windowFeatures.x));
if (windowFeatures.ySet)
map.set("y", WebDouble::create(windowFeatures.y));
if (windowFeatures.widthSet)
map.set("width", WebDouble::create(windowFeatures.width));
if (windowFeatures.heightSet)
map.set("height", WebDouble::create(windowFeatures.height));
map.set("menuBarVisible", WebBoolean::create(windowFeatures.menuBarVisible));
map.set("statusBarVisible", WebBoolean::create(windowFeatures.statusBarVisible));
map.set("toolBarVisible", WebBoolean::create(windowFeatures.toolBarVisible));
map.set("locationBarVisible", WebBoolean::create(windowFeatures.locationBarVisible));
map.set("scrollbarsVisible", WebBoolean::create(windowFeatures.scrollbarsVisible));
map.set("resizable", WebBoolean::create(windowFeatures.resizable));
map.set("fullscreen", WebBoolean::create(windowFeatures.fullscreen));
map.set("dialog", WebBoolean::create(windowFeatures.dialog));
RefPtr<ImmutableDictionary> featuresMap = ImmutableDictionary::adopt(map);
if (!m_client.version)
return adoptRef(toImpl(m_client.createNewPage_deprecatedForUseWithV0(toAPI(page), toAPI(featuresMap.get()), toAPI(modifiers), toAPI(button), m_client.clientInfo)));
RefPtr<WebURLRequest> request = WebURLRequest::create(resourceRequest);
return adoptRef(toImpl(m_client.createNewPage(toAPI(page), toAPI(request.get()), toAPI(featuresMap.get()), toAPI(modifiers), toAPI(button), m_client.clientInfo)));
}
示例8: decode
bool UserData::decode(IPC::ArgumentDecoder& decoder, RefPtr<API::Object>& result)
{
API::Object::Type type;
if (!decoder.decodeEnum(type))
return false;
switch (type) {
case API::Object::Type::Array: {
uint64_t size;
if (!decoder.decode(size))
return false;
Vector<RefPtr<API::Object>> elements;
for (size_t i = 0; i < size; ++i) {
RefPtr<API::Object> element;
if (!decode(decoder, element))
return false;
elements.append(std::move(element));
}
result = API::Array::create(std::move(elements));
break;
}
case API::Object::Type::Boolean:
if (!API::Boolean::decode(decoder, result))
return false;
break;
case API::Object::Type::Data:
if (!API::Data::decode(decoder, result))
return false;
break;
case API::Object::Type::Dictionary: {
uint64_t size;
if (!decoder.decode(size))
return false;
ImmutableDictionary::MapType map;
for (size_t i = 0; i < size; ++i) {
String key;
if (!decoder.decode(key))
return false;
RefPtr<API::Object> value;
if (!decode(decoder, value))
return false;
if (!map.add(std::move(key), std::move(value)).isNewEntry)
return false;
}
result = ImmutableDictionary::create(std::move(map));
break;
}
case API::Object::Type::Double:
if (!API::Double::decode(decoder, result))
return false;
break;
case API::Object::Type::Error:
if (!API::Error::decode(decoder, result))
return false;
break;
case API::Object::Type::FrameHandle: {
uint64_t frameID;
if (!decoder.decode(frameID))
return false;
result = API::FrameHandle::create(frameID);
break;
}
case API::Object::Type::Null:
result = nullptr;
break;
case API::Object::Type::Point:
if (!API::Point::decode(decoder, result))
return false;
break;
case API::Object::Type::Rect:
if (!API::Rect::decode(decoder, result))
return false;
break;
case API::Object::Type::SerializedScriptValue: {
IPC::DataReference dataReference;
if (!decoder.decode(dataReference))
return false;
auto vector = dataReference.vector();
result = WebSerializedScriptValue::adopt(vector);
break;
}
//.........这里部分代码省略.........