15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file.
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef TESTS_NACL_IO_TEST_FAKE_MESSAGING_INTERFACE_H_
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TESTS_NACL_IO_TEST_FAKE_MESSAGING_INTERFACE_H_
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <string>
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <vector>
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "nacl_io/pepper_interface.h"
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "sdk_util/macros.h"
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class FakeVarManager;
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Fake version of the MessagingInterface which simply records any
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// messages sent to it via PostMessage and makes them available as
18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// a std::vector of PP_Var.
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class FakeMessagingInterface : public nacl_io::MessagingInterface {
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public:
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  FakeMessagingInterface(FakeVarManager* manager,
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                         nacl_io::VarInterface* var_interface);
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ~FakeMessagingInterface();
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void PostMessage(PP_Instance instance, PP_Var message);
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  std::vector<PP_Var> messages;
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private:
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  FakeVarManager* manager_;
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  nacl_io::VarInterface* var_interface_;
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(FakeMessagingInterface);
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)};
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif  // TESTS_NACL_IO_TEST_FAKE_MESSAGING_INTERFACE_H_
35