本文整理汇总了C++中coreipc::Attachment::port方法的典型用法代码示例。如果您正苦于以下问题:C++ Attachment::port方法的具体用法?C++ Attachment::port怎么用?C++ Attachment::port使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类coreipc::Attachment
的用法示例。
在下文中一共展示了Attachment::port方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getPluginProcessConnection
PluginProcessConnection* PluginProcessConnectionManager::getPluginProcessConnection(const String& pluginPath)
{
for (size_t i = 0; i < m_pluginProcessConnections.size(); ++i) {
if (m_pluginProcessConnections[i]->pluginPath() == pluginPath)
return m_pluginProcessConnections[i].get();
}
CoreIPC::Attachment encodedConnectionIdentifier;
bool supportsAsynchronousInitialization;
if (!WebProcess::shared().connection()->sendSync(Messages::WebProcessProxy::GetPluginProcessConnection(pluginPath),
Messages::WebProcessProxy::GetPluginProcessConnection::Reply(encodedConnectionIdentifier, supportsAsynchronousInitialization), 0))
return 0;
#if PLATFORM(MAC)
CoreIPC::Connection::Identifier connectionIdentifier = encodedConnectionIdentifier.port();
if (!connectionIdentifier)
return 0;
#elif USE(UNIX_DOMAIN_SOCKETS)
CoreIPC::Connection::Identifier connectionIdentifier = encodedConnectionIdentifier.fileDescriptor();
if (connectionIdentifier == -1)
return 0;
#endif
RefPtr<PluginProcessConnection> pluginProcessConnection = PluginProcessConnection::create(this, pluginPath, connectionIdentifier, supportsAsynchronousInitialization);
m_pluginProcessConnections.append(pluginProcessConnection);
{
MutexLocker locker(m_pathsAndConnectionsMutex);
ASSERT(!m_pathsAndConnections.contains(pluginProcessConnection->pluginPath()));
m_pathsAndConnections.set(pluginPath, pluginProcessConnection->connection());
}
return pluginProcessConnection.get();
}
示例2: didCreateNetworkConnectionToWebProcess
void NetworkProcessProxy::didCreateNetworkConnectionToWebProcess(const CoreIPC::Attachment& connectionIdentifier)
{
ASSERT(!m_pendingConnectionReplies.isEmpty());
// Grab the first pending connection reply.
RefPtr<Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply> reply = m_pendingConnectionReplies.takeFirst();
#if PLATFORM(MAC)
reply->send(CoreIPC::Attachment(connectionIdentifier.port(), MACH_MSG_TYPE_MOVE_SEND));
#else
notImplemented();
#endif
}
示例3: didCreateWebProcessConnection
void SharedWorkerProcessProxy::didCreateWebProcessConnection(const CoreIPC::Attachment& connectionIdentifier)
{
ASSERT(!m_pendingConnectionReplies.isEmpty());
// Grab the first pending connection reply.
RefPtr<Messages::WebProcessProxy::GetSharedWorkerProcessConnection::DelayedReply> reply = m_pendingConnectionReplies.takeFirst();
#if PLATFORM(MAC)
reply->send(CoreIPC::Attachment(connectionIdentifier.port(), MACH_MSG_TYPE_MOVE_SEND));
#elif USE(UNIX_DOMAIN_SOCKETS)
reply->send(connectionIdentifier);
#else
notImplemented();
#endif
}
示例4: didCreateWebProcessConnection
void PluginProcessProxy::didCreateWebProcessConnection(const CoreIPC::Attachment& connectionIdentifier, bool supportsAsynchronousPluginInitialization)
{
ASSERT(!m_pendingConnectionReplies.isEmpty());
// Grab the first pending connection reply.
RefPtr<Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply> reply = m_pendingConnectionReplies.takeFirst();
#if PLATFORM(MAC)
reply->send(CoreIPC::Attachment(connectionIdentifier.port(), MACH_MSG_TYPE_MOVE_SEND), supportsAsynchronousPluginInitialization);
#elif USE(UNIX_DOMAIN_SOCKETS)
reply->send(connectionIdentifier, supportsAsynchronousPluginInitialization);
#else
notImplemented();
#endif
}
示例5: ensureNetworkProcessConnection
void WebProcess::ensureNetworkProcessConnection()
{
if (!m_usesNetworkProcess)
return;
if (m_networkProcessConnection)
return;
CoreIPC::Attachment encodedConnectionIdentifier;
if (!connection()->sendSync(Messages::WebProcessProxy::GetNetworkProcessConnection(),
Messages::WebProcessProxy::GetNetworkProcessConnection::Reply(encodedConnectionIdentifier), 0))
return;
#if PLATFORM(MAC)
CoreIPC::Connection::Identifier connectionIdentifier(encodedConnectionIdentifier.port());
if (CoreIPC::Connection::identifierIsNull(connectionIdentifier))
return;
#else
ASSERT_NOT_REACHED();
#endif
m_networkProcessConnection = NetworkProcessConnection::create(connectionIdentifier);
}