// Copyright (c) 2012 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 PPAPI_SHARED_IMPL_SINGLETON_RESOURCE_ID_H_
#define PPAPI_SHARED_IMPL_SINGLETON_RESOURCE_ID_H_

namespace ppapi {

// These IDs are used to access singleton resource objects using
// PPB_Instance_API.GetSingletonResource.
enum SingletonResourceID {
  // TODO(raymes): The broker resource isn't really a singleton. This is only
  // a hack until PPB_Broker trusted has been fully refactored to the new
  // resource model.
  BROKER_SINGLETON_ID,
  BROWSER_FONT_SINGLETON_ID,
  FILE_MAPPING_SINGLETON_ID,
  FLASH_CLIPBOARD_SINGLETON_ID,
  FLASH_FILE_SINGLETON_ID,
  FLASH_FULLSCREEN_SINGLETON_ID,
  FLASH_SINGLETON_ID,
  GAMEPAD_SINGLETON_ID,
  ISOLATED_FILESYSTEM_SINGLETON_ID,
  NETWORK_PROXY_SINGLETON_ID,
  PDF_SINGLETON_ID,
  TRUETYPE_FONT_SINGLETON_ID,
  UMA_SINGLETON_ID,
};

}  // namespace ppapi

#endif  // PPAPI_SHARED_IMPL_SINGLETON_RESOURCE_ID_H_
