mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add a shared memory variant of CefProcessMessage (fixes issue #3126)
CefSharedProcessMessageBuilder supports creation of a CefProcessMessage backed by a CefSharedMemoryRegion. Performance tests comparing the existing ArgumentList approach and the new SharedMemoryRegion approach have been added to cefclient at http://tests/ipc_performance. CefMessageRouter has been updated to use SharedMemoryRegion as transport for larger message payloads. The threshold is configurable via |CefMessageRouterConfig.message_size_threshold|. To test: run `ceftests --gtest_filter=SendSharedProcessMessageTest.*:SharedProcessMessageTest.*:MessageRouterTest.Threshold*`
This commit is contained in:
committed by
Marshall Greenblatt
parent
a931d49f3e
commit
81e892d19e
44
libcef_dll/ctocpp/shared_process_message_builder_ctocpp.h
Normal file
44
libcef_dll/ctocpp/shared_process_message_builder_ctocpp.h
Normal file
@ -0,0 +1,44 @@
|
||||
// Copyright (c) 2022 The Chromium Embedded Framework Authors. All rights
|
||||
// reserved. Use of this source code is governed by a BSD-style license that
|
||||
// can be found in the LICENSE file.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool. If making changes by
|
||||
// hand only do so within the body of existing method and function
|
||||
// implementations. See the translator.README.txt file in the tools directory
|
||||
// for more information.
|
||||
//
|
||||
// $hash=0a8bf76a2347d7afc98e1cbeb61b88be4bc7e789$
|
||||
//
|
||||
|
||||
#ifndef CEF_LIBCEF_DLL_CTOCPP_SHARED_PROCESS_MESSAGE_BUILDER_CTOCPP_H_
|
||||
#define CEF_LIBCEF_DLL_CTOCPP_SHARED_PROCESS_MESSAGE_BUILDER_CTOCPP_H_
|
||||
#pragma once
|
||||
|
||||
#if !defined(WRAPPING_CEF_SHARED)
|
||||
#error This file can be included wrapper-side only
|
||||
#endif
|
||||
|
||||
#include "include/capi/cef_shared_process_message_builder_capi.h"
|
||||
#include "include/cef_shared_process_message_builder.h"
|
||||
#include "libcef_dll/ctocpp/ctocpp_ref_counted.h"
|
||||
|
||||
// Wrap a C structure with a C++ class.
|
||||
// This class may be instantiated and accessed wrapper-side only.
|
||||
class CefSharedProcessMessageBuilderCToCpp
|
||||
: public CefCToCppRefCounted<CefSharedProcessMessageBuilderCToCpp,
|
||||
CefSharedProcessMessageBuilder,
|
||||
cef_shared_process_message_builder_t> {
|
||||
public:
|
||||
CefSharedProcessMessageBuilderCToCpp();
|
||||
virtual ~CefSharedProcessMessageBuilderCToCpp();
|
||||
|
||||
// CefSharedProcessMessageBuilder methods.
|
||||
bool IsValid() override;
|
||||
size_t Size() override;
|
||||
void* Memory() override;
|
||||
CefRefPtr<CefProcessMessage> Build() override;
|
||||
};
|
||||
|
||||
#endif // CEF_LIBCEF_DLL_CTOCPP_SHARED_PROCESS_MESSAGE_BUILDER_CTOCPP_H_
|
Reference in New Issue
Block a user