// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifdef UNSAFE_BUFFERS_BUILD // TODO(crbug.com/351564777): Remove this and convert code to safer constructs. #pragma allow_unsafe_buffers #endif #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_BUFFER_H_ #define MOJO_PUBLIC_CPP_BINDINGS_LIB_BUFFER_H_ #include <stddef.h> #include <stdint.h> #include <vector> #include "base/component_export.h" #include "base/memory/raw_ptr_exclusion.h" #include "mojo/public/cpp/system/handle.h" #include "mojo/public/cpp/system/message.h" namespace mojo { namespace internal { // Buffer provides an interface to allocate memory blocks which are 8-byte // aligned. It doesn't own the underlying memory. Users must ensure that the // memory stays valid while using the allocated blocks from Buffer. // // A Buffer may be moved around. A moved-from Buffer is reset and may no longer // be used to Allocate memory unless re-Initialized. class COMPONENT_EXPORT(MOJO_CPP_BINDINGS_BASE) Buffer { … }; } // namespace internal } // namespace mojo #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_BUFFER_H_