// Copyright 2014 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_EXAMPLES_TEST_EXAMPLE_SERVICE_IMPL_H_
#define MOJO_EXAMPLES_TEST_EXAMPLE_SERVICE_IMPL_H_

#include "examples/apptest/example_service.mojom.h"
#include "mojo/public/cpp/system/macros.h"

namespace mojo {

class ApplicationConnection;

class ExampleServiceImpl : public InterfaceImpl<ExampleService> {
 public:
  ExampleServiceImpl();
  virtual ~ExampleServiceImpl();

 private:
  // InterfaceImpl<ExampleService> overrides.
  virtual void Ping(uint16_t ping_value) override;
  virtual void RunCallback(const Callback<void()>& callback) override;

  MOJO_DISALLOW_COPY_AND_ASSIGN(ExampleServiceImpl);
};

}  // namespace mojo

#endif  // MOJO_EXAMPLES_TEST_EXAMPLE_SERVICE_IMPL_H_
