root/native_client_sdk/src/libraries/nacl_io/pepper_interface_dummy.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


/* Copyright (c) 2013 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 LIBRARIES_NACL_IO_PEPPER_INTERFACE_DUMMY_H_
#define LIBRARIES_NACL_IO_PEPPER_INTERFACE_DUMMY_H_

#include "nacl_io/pepper_interface.h"

// This class simplifies implementing a PepperInterface-derived class where you
// don't care about certain interfaces. All interface-getters return NULL by
// default.
//
// For example:
//
// class FooPepperInterface : public PepperInterfaceDummy {
//  public:
//   CoreInterface* GetCoreInterface() { ... };
// };
//
// // FooPepperInterface is not abstract -- all pure virtual functions have
// been defined to return NULL.

namespace nacl_io {

class PepperInterfaceDummy : public PepperInterface {
 public:
  PepperInterfaceDummy() {}
  virtual ~PepperInterfaceDummy() {}
  virtual PP_Instance GetInstance() { return 0; }

// Interface getters.
#include "nacl_io/pepper/undef_macros.h"
#include "nacl_io/pepper/define_empty_macros.h"
#undef BEGIN_INTERFACE
#define BEGIN_INTERFACE(BaseClass, PPInterface, InterfaceString) \
    virtual BaseClass* Get##BaseClass() { return NULL; }
#include "nacl_io/pepper/all_interfaces.h"
};

}  // namespace nacl_io

#endif  // LIBRARIES_NACL_IO_PEPPER_INTERFACE_DUMMY_H_

/* [<][>][^][v][top][bottom][index][help] */