kplugin.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /** @file kplugin.h
  2. *
  3. * @brief Klish scheme's "plugin" entry
  4. */
  5. #ifndef _klish_kplugin_h
  6. #define _klish_kplugin_h
  7. #include <faux/error.h>
  8. typedef struct kplugin_s kplugin_t;
  9. typedef struct iplugin_s {
  10. char *name;
  11. char *id;
  12. char *file;
  13. char *global;
  14. char *script;
  15. } iplugin_t;
  16. typedef enum {
  17. KPLUGIN_ERROR_OK,
  18. KPLUGIN_ERROR_INTERNAL,
  19. KPLUGIN_ERROR_ALLOC,
  20. KPLUGIN_ERROR_ATTR_NAME,
  21. KPLUGIN_ERROR_ATTR_ID,
  22. KPLUGIN_ERROR_ATTR_FILE,
  23. KPLUGIN_ERROR_ATTR_GLOBAL,
  24. KPLUGIN_ERROR_SCRIPT,
  25. } kplugin_error_e;
  26. C_DECL_BEGIN
  27. // iplugin_t
  28. char *iplugin_to_text(const iplugin_t *iplugin, int level);
  29. // kplugin_t
  30. void kplugin_free(kplugin_t *plugin);
  31. bool_t kplugin_parse(kplugin_t *plugin, const iplugin_t *info, kplugin_error_e *error);
  32. kplugin_t *kplugin_new(const iplugin_t *info, kplugin_error_e *error);
  33. const char *kplugin_strerror(kplugin_error_e error);
  34. const char *kplugin_name(const kplugin_t *plugin);
  35. bool_t kplugin_set_name(kplugin_t *plugin, const char *name);
  36. const char *kplugin_id(const kplugin_t *plugin);
  37. bool_t kplugin_set_id(kplugin_t *plugin, const char *id);
  38. const char *kplugin_file(const kplugin_t *plugin);
  39. bool_t kplugin_set_file(kplugin_t *plugin, const char *file);
  40. bool_t kplugin_global(const kplugin_t *plugin);
  41. bool_t kplugin_set_global(kplugin_t *plugin, bool_t global);
  42. const char *kplugin_script(const kplugin_t *plugin);
  43. bool_t kplugin_set_script(kplugin_t *plugin, const char *script);
  44. kplugin_t *kplugin_from_iplugin(iplugin_t *iplugin, faux_error_t *error_stack);
  45. C_DECL_END
  46. #endif // _klish_kplugin_h