def generate_output(dao):
    """
    Loads the machine objects from the datastore, calls
    :py:func:`pacman103.core.output_generator.generate_output_raw` to generate
    load targets and executable targets, and stores the result in the datastore.

    :param `pacman103.core.dao` dao:
        datastore containing a machine object.

    """
    machine = dao.get_machine()
    #checks if the folders for the binery and reports exists already.
    check_directories_exist(dao)
    generate_output_raw(dao)
    if conf.config.getboolean("Reports", "reportsEnabled"):
        reports.generate_data_generator_reports(dao)
    
    # Pickle outputs for reload
    directory = DAO.get_binaries_directory()
    load_targets_path = os.path.join(directory, "pickled_load_targets")
    executable_targets_path = os.path.join(directory, "pickled_executable_targets")
    mem_write_targets_path = os.path.join(directory, "pickled_mem_write_targets")
    
    try:
        load_targets_file = open(load_targets_path, "wb")
        pickle.dump(dao.load_targets, load_targets_file, protocol=pickle.HIGHEST_PROTOCOL)
        load_targets_file.close()
        executable_targets_file = open(executable_targets_path, "wb")
        pickle.dump(dao.executable_targets, executable_targets_file, protocol=pickle.HIGHEST_PROTOCOL)
        executable_targets_file.close()
        mem_write_targets_file = open(mem_write_targets_path, "wb")
        pickle.dump(dao.mem_write_targets, mem_write_targets_file, protocol=pickle.HIGHEST_PROTOCOL)
        mem_write_targets_file.close()
    except Exception as e:
        print e.message
def reload_output(dao, reload_time):
    logger.info("Reloading targets from %s" % reload_time)
    directory = DAO.get_binaries_directory(reload_time=reload_time)
    load_targets_path = os.path.join(directory, "pickled_load_targets")
    executable_targets_path = os.path.join(directory, "pickled_executable_targets")
    mem_write_targets_path = os.path.join(directory, "pickled_mem_write_targets")
    try:
        load_targets_file = open(load_targets_path, "rb")
        dao.load_targets = pickle.load(load_targets_file)
        load_targets_file.close()
        executable_targets_file = open(executable_targets_path, "rb")
        dao.executable_targets = pickle.load(executable_targets_file)
        executable_targets_file.close()
        mem_write_targets_file = open(mem_write_targets_path, "rb")
        dao.mem_write_targets = pickle.load(mem_write_targets_file)
        mem_write_targets_file.close()
    except Exception as e:
        print e.message
def generate_output(dao):
    """
    Loads the machine objects from the datastore, calls
    :py:func:`pacman103.core.output_generator.generate_output_raw` to generate
    load targets and executable targets, and stores the result in the datastore.

    :param `pacman103.core.dao` dao:
        datastore containing a machine object.

    """
    machine = dao.get_machine()
    #checks if the folders for the binery and reports exists already.
    check_directories_exist(dao)
    generate_output_raw(dao)
    if conf.config.getboolean("Reports", "reportsEnabled"):
        reports.generate_data_generator_reports(dao)

    # Pickle outputs for reload
    directory = DAO.get_binaries_directory()
    load_targets_path = os.path.join(directory, "pickled_load_targets")
    executable_targets_path = os.path.join(directory,
                                           "pickled_executable_targets")
    mem_write_targets_path = os.path.join(directory,
                                          "pickled_mem_write_targets")

    try:
        load_targets_file = open(load_targets_path, "wb")
        pickle.dump(dao.load_targets,
                    load_targets_file,
                    protocol=pickle.HIGHEST_PROTOCOL)
        load_targets_file.close()
        executable_targets_file = open(executable_targets_path, "wb")
        pickle.dump(dao.executable_targets,
                    executable_targets_file,
                    protocol=pickle.HIGHEST_PROTOCOL)
        executable_targets_file.close()
        mem_write_targets_file = open(mem_write_targets_path, "wb")
        pickle.dump(dao.mem_write_targets,
                    mem_write_targets_file,
                    protocol=pickle.HIGHEST_PROTOCOL)
        mem_write_targets_file.close()
    except Exception as e:
        print e.message
def reload_output(dao, reload_time):
    logger.info("Reloading targets from %s" % reload_time)
    directory = DAO.get_binaries_directory(reload_time=reload_time)
    load_targets_path = os.path.join(directory, "pickled_load_targets")
    executable_targets_path = os.path.join(directory,
                                           "pickled_executable_targets")
    mem_write_targets_path = os.path.join(directory,
                                          "pickled_mem_write_targets")
    try:
        load_targets_file = open(load_targets_path, "rb")
        dao.load_targets = pickle.load(load_targets_file)
        load_targets_file.close()
        executable_targets_file = open(executable_targets_path, "rb")
        dao.executable_targets = pickle.load(executable_targets_file)
        executable_targets_file.close()
        mem_write_targets_file = open(mem_write_targets_path, "rb")
        dao.mem_write_targets = pickle.load(mem_write_targets_file)
        mem_write_targets_file.close()
    except Exception as e:
        print e.message