diff options
| -rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 36 |
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 | ||
| 1714 | class 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 | |||
| 1714 | from . import cvs | 1750 | from . import cvs |
| 1715 | from . import git | 1751 | from . import git |
| 1716 | from . import gitsm | 1752 | from . import gitsm |
