| Index: base/object_factory.h
|
| diff --git a/base/object_factory.h b/base/object_factory.h
|
| deleted file mode 100644
|
| index b74b21cd4a07924ca3c144c6a84aef31bffb85e4..0000000000000000000000000000000000000000
|
| --- a/base/object_factory.h
|
| +++ /dev/null
|
| @@ -1,67 +0,0 @@
|
| -// Copyright 2007-2009 Google Inc.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -// ========================================================================
|
| -
|
| -#ifndef OMAHA_BASE_OBJECT_FACTORY_H_
|
| -#define OMAHA_BASE_OBJECT_FACTORY_H_
|
| -
|
| -#include <map>
|
| -
|
| -namespace omaha {
|
| -
|
| -// Factory creates instances of objects based on a unique type id.
|
| -//
|
| -// AbstractProduct - base class of the product hierarchy.
|
| -// TypeId - type id for each type in the hierarchy.
|
| -// ProductCreator - callable entity to create objects.
|
| -
|
| -template <class AbstractProduct,
|
| - typename TypeId,
|
| - typename ProductCreator = AbstractProduct* (*)()>
|
| -class Factory {
|
| - public:
|
| - Factory() {}
|
| -
|
| - // Registers a creator for the type id. Returns true if the creator has
|
| - // been registered succesfully.
|
| - bool Register(const TypeId& id, ProductCreator creator) {
|
| - return id_to_creators_.insert(Map::value_type(id, creator)).second;
|
| - }
|
| -
|
| - // Unregisters a type id.
|
| - bool Unregister(const TypeId& id) {
|
| - return id_to_creators_.erase(id) == 1;
|
| - }
|
| -
|
| - // Creates an instance of the abstract product.
|
| - AbstractProduct* CreateObject(const TypeId& id) const {
|
| - typename Map::const_iterator it = id_to_creators_.find(id);
|
| - if (it != id_to_creators_.end()) {
|
| - return (it->second)();
|
| - } else {
|
| - return NULL;
|
| - }
|
| - }
|
| -
|
| - private:
|
| - typedef std::map<TypeId, ProductCreator> Map;
|
| - Map id_to_creators_;
|
| -
|
| - DISALLOW_EVIL_CONSTRUCTORS(Factory);
|
| -};
|
| -
|
| -} // namespace omaha
|
| -
|
| -#endif // OMAHA_BASE_OBJECT_FACTORY_H_
|
| -
|
|
|