':param conf: configuration object obtained from ConfigParser
:param logger: logging object'

def __init__(self, conf, logger=None):

    self.conf = conf
    self.logger = (logger or get_logger(conf, log_route='object-reconstructor'))
    self.devices_dir = conf.get('devices', '/srv/node')
    self.mount_check = config_true_value(conf.get('mount_check', 'true'))
    self.swift_dir = conf.get('swift_dir', '/etc/swift')
    self.bind_ip = conf.get('bind_ip', '0.0.0.0')
    self.servers_per_port = int((conf.get('servers_per_port', '0') or 0))
    self.port = (None if self.servers_per_port else int(conf.get('bind_port', 6200)))
    self.concurrency = int(conf.get('concurrency', 1))
    self.reconstructor_workers = int(conf.get('reconstructor_workers', 0))
    self.policies = [policy for policy in POLICIES if (policy.policy_type == EC_POLICY)]
    self.stats_interval = int(conf.get('stats_interval', '300'))
    self.ring_check_interval = int(conf.get('ring_check_interval', 15))
    self.next_check = (time.time() + self.ring_check_interval)
    self.partition_times = []
    self.interval = int((conf.get('interval') or conf.get('run_pause') or 30))
    self.http_timeout = int(conf.get('http_timeout', 60))
    self.lockup_timeout = int(conf.get('lockup_timeout', 1800))
    self.recon_cache_path = conf.get('recon_cache_path', '/var/cache/swift')
    self.rcache = os.path.join(self.recon_cache_path, 'object.recon')
    self._next_rcache_update = (time.time() + self.stats_interval)
    self.conn_timeout = float(conf.get('conn_timeout', 0.5))
    self.node_timeout = float(conf.get('node_timeout', 10))
    self.network_chunk_size = int(conf.get('network_chunk_size', 65536))
    self.disk_chunk_size = int(conf.get('disk_chunk_size', 65536))
    self.headers = {'Content-Length': '0', 'user-agent': ('obj-reconstructor    %s' % os.getpid())}
    if ('handoffs_first' in conf):
        self.logger.warning('The    handoffs_first    option    is    deprecated    in    favor    of    handoffs_only.    This    option    may    be    ignored    in    a    future    release.')
        default_handoffs_only = config_true_value(conf['handoffs_first'])
    else:
        default_handoffs_only = False
    self.handoffs_only = config_true_value(conf.get('handoffs_only', default_handoffs_only))
    if self.handoffs_only:
        self.logger.warning('Handoff    only    mode    is    not    intended    for    normal    operation,    use    handoffs_only    with    care.')
    elif default_handoffs_only:
        self.logger.warning('Ignored    handoffs_first    option    in    favor    of    handoffs_only.')
    self._df_router = DiskFileRouter(conf, self.logger)
    self.all_local_devices = self.get_local_devices()
