#!/usr/bin/env python

from datetime import timedelta

import configparser;
import sys

class RHC():
    def __init__(self, config : configparser.ConfigParser):
        # latest scheduling fix in minutes
        self.FixedBeforeArrival = None
        # number of seconds per window
        self.WindowSize = None
        # number of horizon windows for optimization iteration
        self.WindowOverlap = None
        # distance until IAF to add an aircraft to the optimization
        self.MaximumIafDistance = None

        # search the required sections
        for key in config:
            if 'windowsize' == key:
                self.WindowSize = int(config['windowsize'])
            elif 'windowoverlap' == key:
                self.WindowOverlap = int(config['windowoverlap'])
            elif 'fixedbeforearrival' == key:
                self.FixedBeforeArrival = timedelta(minutes = int(config['fixedbeforearrival']))
            elif 'maximumiafdistance' == key:
                self.MaximumIafDistance = int(config['maximumiafdistance'])

        if self.WindowSize is None:
            sys.stderr.write('No window size configuration found!')
            sys.exit(-1)
        if self.WindowOverlap is None:
            sys.stderr.write('No window overlap configuration found!')
            sys.exit(-1)
        if self.FixedBeforeArrival is None:
            sys.stderr.write('No fixed before IAF configuration found!')
            sys.exit(-1)
        if self.MaximumIafDistance is None:
            sys.stderr.write('No maximum IAF distance found!')
            sys.exit(-1)
