kplugin.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 *file;
  12. char *global;
  13. char *script;
  14. } iplugin_t;
  15. typedef enum {
  16. KPLUGIN_ERROR_OK,
  17. KPLUGIN_ERROR_INTERNAL,
  18. KPLUGIN_ERROR_ALLOC,
  19. KPLUGIN_ERROR_ATTR_NAME,
  20. KPLUGIN_ERROR_ATTR_FILE,
  21. KPLUGIN_ERROR_ATTR_GLOBAL,
  22. KPLUGIN_ERROR_SCRIPT,
  23. } kplugin_error_e;
  24. C_DECL_BEGIN
  25. // iplugin_t
  26. char *iplugin_to_text(const iplugin_t *iplugin, int level);
  27. // kplugin_t
  28. void kplugin_free(kplugin_t *plugin);
  29. bool_t kplugin_parse(kplugin_t *plugin, const iplugin_t *info, kplugin_error_e *error);
  30. kplugin_t *kplugin_new(const iplugin_t *info, kplugin_error_e *error);
  31. const char *kplugin_strerror(kplugin_error_e error);
  32. const char *kplugin_name(const kplugin_t *plugin);
  33. bool_t kplugin_set_name(kplugin_t *plugin, const char *name);
  34. const char *kplugin_file(const kplugin_t *plugin);
  35. bool_t kplugin_set_file(kplugin_t *plugin, const char *file);
  36. bool_t kplugin_global(const kplugin_t *plugin);
  37. bool_t kplugin_set_global(kplugin_t *plugin, bool_t global);
  38. const char *kplugin_script(const kplugin_t *plugin);
  39. bool_t kplugin_set_script(kplugin_t *plugin, const char *script);
  40. kplugin_t *kplugin_from_iplugin(iplugin_t *iplugin, faux_error_t *error_stack);
  41. C_DECL_END
  42. #endif // _klish_kplugin_h