blob: 8d945cffc473b5d7bc935e913186e3edead0ee9e [file] [log] [blame]
Attila Fazekas3e1b6742013-01-28 16:30:35 +01001# vim: tabstop=4 shiftwidth=4 softtabstop=4
2
3# Copyright 2012 OpenStack, LLC
4# All Rights Reserved.
5#
6# Licensed under the Apache License, Version 2.0 (the "License"); you may
7# not use this file except in compliance with the License. You may obtain
8# a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15# License for the specific language governing permissions and limitations
16# under the License.
17
18
19def singleton(cls):
20 """Simple wrapper for classes that should only have a single instance."""
21 instances = {}
22
23 def getinstance():
24 if cls not in instances:
25 instances[cls] = cls()
26 return instances[cls]
27 return getinstance