Sha256: 753db7d689ac9afee4318b74f3c461cb737a1d3762a148e717cf17d35116444d

Contents?: true

Size: 802 Bytes

Versions: 3

Compression:

Stored size: 802 Bytes

Contents

#ifndef AI_LOADER_H
#define AI_LOADER_H

#include <dlfcn.h>
#include <stdexcept>
#include <string>
#include "../../khetai_lib.h"

class AILoader
{
public:
    AILoader(const std::string &lib_path);
    ~AILoader();

    void (*get_init_zobrist())();
    void (*get_setup_board())(char **);
    void (*get_print_board())();
    void (*get_set_time_parameters())(int, time_t);
    Move (*get_alphabeta_root())(int, enum Player);
    void (*get_make_move())(Move);
    int (*get_get_start())(Move);
    int (*get_get_end())(Move);
    int (*get_get_rotation())(Move);
    void reload_library(const std::string &lib_path);

private:
    void *handle;
    void load_library(const std::string &lib_path);
    void *get_symbol(const std::string &symbol_name);
    void check_error();
};

#endif // AI_LOADER_H

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
khetai-0.2.2 ext/khetai/dev/fltk-ui/ai_loader.h
khetai-0.2.1 ext/khetai/dev/fltk-ui/ai_loader.h
khetai-0.2.0 ext/khetai/dev/fltk-ui/ai_loader.h