#ifndef ipafair_h_INCLUDED
#define ipafair_h_INCLUDED
#include <stdint.h>
#if defined(IPAFAIR_SHARED_LIB)
#if defined(_WIN32) || defined(__CYGWIN__)
#if defined(BUILDING_IPAFAIR_SHARED_LIB)
#if defined(__GNUC__)
#define IPAFAIR_API __attribute__((dllexport))
#elif defined(_MSC_VER)
#define IPAFAIR_API __declspec(dllexport)
#endif
#else
#if defined(__GNUC__)
#define IPAFAIR_API __attribute__((dllimport))
#elif defined(_MSC_VER)
#define IPAFAIR_API __declspec(dllimport)
#endif
#endif
#elif defined(__GNUC__)
#define IPAFAIR_API __attribute__((visibility("default")))
#endif
#if !defined(IPAFAIR_API)
#if !defined(IPAFAIR_SUPPRESS_WARNINGS)
#warning "Unknown compiler. Not adding visibility information to IPAFAIR symbols."
#warning "Define IPAFAIR_SUPPRESS_WARNINGS to suppress this warning."
#endif
#define IPAFAIR_API
#endif
#else
#define IPAFAIR_API
#endif
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
admissible,
complete,
preferred,
stable,
semistable,
stage,
ideal
} semantics;
IPAFAIR_API const char * ipafair_signature ();
IPAFAIR_API void * ipafair_init ();
IPAFAIR_API void ipafair_release (void * solver);
IPAFAIR_API void ipafair_set_semantics (void * solver, semantics sem);
IPAFAIR_API void ipafair_add_argument (void * solver, int32_t arg);
IPAFAIR_API void ipafair_del_argument (void * solver, int32_t arg);
IPAFAIR_API void ipafair_add_attack (void * solver, int32_t s, int32_t t);
IPAFAIR_API void ipafair_del_attack (void * solver, int32_t s, int32_t t);
IPAFAIR_API void ipafair_assume (void * solver, int32_t arg);
IPAFAIR_API int ipafair_solve_cred (void * solver);
IPAFAIR_API int ipafair_solve_skept (void * solver);
IPAFAIR_API int32_t ipafair_val (void * solver, int32_t arg);
#ifdef __cplusplus
} #endif
#endif