summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/fetch2/__init__.py')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index cc772df498..7fd9ec7bf1 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -1711,6 +1711,42 @@ class Fetch(object):
1711 if ud.lockfile: 1711 if ud.lockfile:
1712 bb.utils.unlockfile(lf) 1712 bb.utils.unlockfile(lf)
1713 1713
1714class FetchConnectionCache(object):
1715 """
1716 A class which represents an container for socket connections.
1717 """
1718 def __init__(self):
1719 self.cache = {}
1720
1721 def get_connection_name(self, host, port):
1722 return host + ':' + str(port)
1723
1724 def add_connection(self, host, port, connection):
1725 cn = self.get_connection_name(host, port)
1726
1727 if cn not in self.cache:
1728 self.cache[cn] = connection
1729
1730 def get_connection(self, host, port):
1731 connection = None
1732
1733 cn = self.get_connection_name(host, port)
1734 if cn in self.cache:
1735 connection = self.cache[cn]
1736
1737 return connection
1738
1739 def remove_connection(self, host, port):
1740 cn = self.get_connection_name(host, port)
1741 if cn in self.cache:
1742 self.cache[cn].close()
1743 del self.cache[cn]
1744
1745 def close_connections(self):
1746 for cn in self.cache.keys():
1747 self.cache[cn].close()
1748 del self.cache[cn]
1749
1714from . import cvs 1750from . import cvs
1715from . import git 1751from . import git
1716from . import gitsm 1752from . import gitsm