// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_DUMPER_H_ #define MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_DUMPER_H_ #include "base/files/file_path.h" #include "mojo/public/cpp/bindings/message.h" #include "mojo/public/cpp/bindings/message_dumper.h" namespace mojo { class MessageDumper : public mojo::MessageReceiver { public: MessageDumper(); ~MessageDumper() override; bool Accept(mojo::Message* message) override; struct MessageEntry { MessageEntry(const uint8_t* data, uint32_t data_size, const char* interface_name, const char* method_name); MessageEntry(const MessageEntry& entry); ~MessageEntry(); const char* interface_name; const char* method_name; std::vector data_bytes; }; static void SetMessageDumpDirectory(const base::FilePath& directory); static const base::FilePath& GetMessageDumpDirectory(); private: uint32_t identifier_; }; } // namespace mojo #endif // MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_DUMPER_H_