10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright (c) 2014 The Chromium Authors. All rights reserved.
20529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use of this source code is governed by a BSD-style license that can be
30529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// found in the LICENSE file.
40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "ppapi/cpp/instance.h"
60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "ppapi/cpp/module.h"
70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "ppapi/cpp/var.h"
80529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass Instance : public pp::Instance {
100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch public:
110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  explicit Instance(PP_Instance instance) : pp::Instance(instance) {}
120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual ~Instance() {}
130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]) {
150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    PostMessage("Hello, multi-platform!");
160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    return true;
170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  }
180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch};
190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass Module : public pp::Module {
210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch public:
220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  Module() : pp::Module() {}
230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual ~Module() {}
240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual pp::Instance* CreateInstance(PP_Instance instance) {
260529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    return new Instance(instance);
270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  }
280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch};
290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
300529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace pp {
310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
320529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochModule* CreateModule() {
330529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  return new ::Module();
340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}
350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}  // namespace pp
37