def __init__(self, transport, max_conn=20):
# Backpointer to transport object
self.__xport = transport
# Curl handles
self.__mhandle = pycurl.CurlMulti()
self.__chandles = []
self.__active_handles = 0
self.__max_handles = max_conn
# Request queue
self.__req_q = deque()
# List of failures
self.__failures = []
# List of URLs successfully transferred
self.__success = []
# List of Orphaned URLs.
self.__orphans = set()
# Set default file buffer size at 128k, callers override
# this setting after looking at VFS block size.
self.__file_bufsz = 131072
# Header bits and pieces
self.__user_agent = None
self.__common_header = {}
self.__last_stall_check = 0
# Set options on multi-handle
self.__mhandle.setopt(pycurl.M_PIPELINING, 0)
# initialize easy handles
for i in range(self.__max_handles):
eh = pycurl.Curl()
eh.url = None
eh.repourl = None
eh.fobj = None
eh.r_fobj = None
eh.filepath = None
eh.success = False
eh.fileprog = None
eh.filetime = -1
eh.starttime = -1
eh.uuid = None
self.__chandles.append(eh)
# copy handles into handle freelist
self.__freehandles = self.__chandles[:]
评论列表
文章目录