Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Unified Diff: gpu/np_utils/np_dispatcher.h

Issue 481007: Deleted np_utils library. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/np_utils/np_class_unittest.cc ('k') | gpu/np_utils/np_dispatcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/np_utils/np_dispatcher.h
===================================================================
--- gpu/np_utils/np_dispatcher.h (revision 34090)
+++ gpu/np_utils/np_dispatcher.h (working copy)
@@ -1,224 +0,0 @@
-// Copyright (c) 2006-2008 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 GPU_NP_UTILS_NP_DISPATCHER_H_
-#define GPU_NP_UTILS_NP_DISPATCHER_H_
-
-#include <string>
-
-#include "gpu/np_utils/np_utils.h"
-#include "gpu/np_utils/np_headers.h"
-
-// Dispatchers make regular member functions available as NPObject methods.
-// Usage:
-//
-// class MyNPObject : public DefaultNPObject<NPObject> {
-// public:
-// int MyMethod(bool a, float b);
-// NP_UTILS_BEGIN_DISPATCHER_CHAIN(MyNPObject, DispatchedNPObject)
-// NP_UTILS_DISPATCHER(MyMethod, int(bool, float))
-// NP_UTILS_END_DISPATCHER_CHAIN
-// };
-//
-// Multiple member functions may be listed in the dispatcher chain. Inheritance
-// is supported. The following types are supported as return types and parameter
-// types:
-// * bool
-// * int
-// * float
-// * double
-// * std::string
-// * NPObject*
-//
-
-// These macros are used to make dispatcher chains.
-#define NP_UTILS_NP_UTILS_DISPATCHER_JOIN2(a, b) a ## b
-#define NP_UTILS_DISPATCHER_JOIN(a, b) NP_UTILS_NP_UTILS_DISPATCHER_JOIN2(a, b)
-#define NP_UTILS_DISPATCHER_UNIQUE \
- NP_UTILS_DISPATCHER_JOIN(dispatcher, __LINE__)
-
-#define NP_UTILS_BEGIN_DISPATCHER_CHAIN(Class, BaseClass) \
- static ::np_utils::BaseNPDispatcher* GetDispatcherChain() { \
- typedef Class ThisClass; \
- ::np_utils::BaseNPDispatcher* top_dispatcher = \
- BaseClass::GetDispatcherChain(); \
-
-#define NP_UTILS_DISPATCHER(name, Signature) \
- static ::np_utils::NPDispatcher<ThisClass, Signature> \
- NP_UTILS_DISPATCHER_UNIQUE( \
- top_dispatcher, \
- #name, \
- &ThisClass::name); \
- top_dispatcher = &NP_UTILS_DISPATCHER_UNIQUE; \
-
-#define NP_UTILS_END_DISPATCHER_CHAIN \
- return top_dispatcher; \
- } \
- bool HasMethod(NPIdentifier name) { \
- return ::np_utils::DispatcherHasMethodHelper( \
- GetDispatcherChain(), this, name); \
- } \
- bool Invoke(NPIdentifier name, \
- const NPVariant* args, \
- uint32_t num_args, \
- NPVariant* result) { \
- return ::np_utils::DispatcherInvokeHelper(GetDispatcherChain(), \
- this, \
- name, \
- args, \
- num_args, \
- result); \
- } \
- bool Enumerate(NPIdentifier** names, uint32_t* num_names) { \
- return ::np_utils::DispatcherEnumerateHelper(GetDispatcherChain(), \
- this, \
- names, \
- num_names); \
- } \
-
-namespace np_utils {
-
-class BaseNPDispatcher {
- public:
- BaseNPDispatcher(BaseNPDispatcher* next, const NPUTF8* name);
-
- virtual ~BaseNPDispatcher();
-
- BaseNPDispatcher* next() const {
- return next_;
- }
-
- NPIdentifier name() const {
- return name_;
- }
-
- virtual int num_args() const = 0;
-
- virtual bool Invoke(NPObject* object,
- const NPVariant* args,
- uint32_t num_args,
- NPVariant* result) = 0;
-
- private:
- BaseNPDispatcher* next_;
- NPIdentifier name_;
- DISALLOW_COPY_AND_ASSIGN(BaseNPDispatcher);
-};
-
-bool DispatcherHasMethodHelper(BaseNPDispatcher* chain,
- NPObject* object,
- NPIdentifier name);
-
-bool DispatcherInvokeHelper(BaseNPDispatcher* chain,
- NPObject* object,
- NPIdentifier name,
- const NPVariant* args,
- uint32_t num_args,
- NPVariant* result);
-
-bool DispatcherEnumerateHelper(BaseNPDispatcher* chain,
- NPObject* object,
- NPIdentifier** names,
- uint32_t* num_names);
-
-// This class should never be instantiated. It is always specialized. Attempting
-// to instantiate it results in a compilation error. This might mean an
-// attempt to instantiate a dispatcher with more parameters than have been
-// specialized for. See the specialization code below.
-template <typename NPObjectType, typename FunctionType>
-struct NPDispatcher {
-};
-
-#define TO_NPVARIANT(index) \
- T##index n##index; \
- if (!NPVariantToValue(&n##index, args[index])) \
- return false; \
-
-#define NUM_PARAMS 0
-#define PARAM_TYPENAMES
-#define PARAM_TYPES
-#define PARAM_NAMES
-#define PARAM_DECLS // NOLINT
-
-#define PARAM_TO_NVPARIANT_CONVERSIONS \
-
-#include "gpu/np_utils/np_dispatcher_specializations.h" // NOLINT
-
-
-#define NUM_PARAMS 1
-#define PARAM_TYPENAMES , typename T0
-#define PARAM_TYPES T0
-#define PARAM_NAMES n0
-#define PARAM_DECLS T0 n0; // NOLINT
-
-#define PARAM_TO_NVPARIANT_CONVERSIONS \
- TO_NPVARIANT(0); \
-
-#include "gpu/np_utils/np_dispatcher_specializations.h" // NOLINT
-
-
-#define NUM_PARAMS 2
-#define PARAM_TYPENAMES , typename T0, typename T1
-#define PARAM_TYPES T0, T1
-#define PARAM_NAMES n0, n1
-#define PARAM_DECLS T0 n0; T1 n1; // NOLINT
-
-#define PARAM_TO_NVPARIANT_CONVERSIONS \
- TO_NPVARIANT(0); \
- TO_NPVARIANT(1); \
-
-#include "gpu/np_utils/np_dispatcher_specializations.h" // NOLINT
-
-
-#define NUM_PARAMS 3
-#define PARAM_TYPENAMES , typename T0, typename T1, typename T2
-#define PARAM_TYPES T0, T1, T2
-#define PARAM_NAMES n0, n1, n2
-#define PARAM_DECLS T0 n0; T1 n1; T2 n2; // NOLINT
-
-#define PARAM_TO_NVPARIANT_CONVERSIONS \
- TO_NPVARIANT(0); \
- TO_NPVARIANT(1); \
- TO_NPVARIANT(2); \
-
-#include "gpu/np_utils/np_dispatcher_specializations.h" // NOLINT
-
-
-#define NUM_PARAMS 4
-#define PARAM_TYPENAMES , typename T0, typename T1, typename T2, typename T3
-#define PARAM_TYPES T0, T1, T2, T3
-#define PARAM_NAMES n0, n1, n2, n3
-#define PARAM_DECLS T0 n0; T1 n1; T2 n2; T3 n3; // NOLINT
-
-#define PARAM_TO_NVPARIANT_CONVERSIONS \
- TO_NPVARIANT(0); \
- TO_NPVARIANT(1); \
- TO_NPVARIANT(2); \
- TO_NPVARIANT(3); \
-
-#include "gpu/np_utils/np_dispatcher_specializations.h" // NOLINT
-
-
-#define NUM_PARAMS 5
-#define PARAM_TYPENAMES , typename T0, typename T1, typename T2, typename T3, \
- typename T4
-#define PARAM_TYPES T0, T1, T2, T3, T4
-#define PARAM_NAMES n0, n1, n2, n3, n4
-#define PARAM_DECLS T0 n0; T1 n1; T2 n2; T3 n3; T4 n4; // NOLINT
-
-#define PARAM_TO_NVPARIANT_CONVERSIONS \
- TO_NPVARIANT(0); \
- TO_NPVARIANT(1); \
- TO_NPVARIANT(2); \
- TO_NPVARIANT(3); \
- TO_NPVARIANT(4); \
-
-#include "gpu/np_utils/np_dispatcher_specializations.h" // NOLINT
-
-
-#undef TO_NPVARIANT
-
-} // namespace np_utils
-
-#endif // GPU_NP_UTILS_NP_DISPATCHER_H_
« no previous file with comments | « gpu/np_utils/np_class_unittest.cc ('k') | gpu/np_utils/np_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698