+
+
+
+
+
+
+// Plugin Type
+enum AFB_pluginE
+{
+ AFB_PLUGIN_JSON = 123456789,
+ AFB_PLUGIN_JSCRIPT = 987654321,
+ AFB_PLUGIN_RAW = 987123546
+};
+
+// Enum for Session/Token/Authentication middleware
+enum AFB_sessionE
+{
+ AFB_SESSION_NONE,
+ AFB_SESSION_CREATE,
+ AFB_SESSION_CLOSE,
+ AFB_SESSION_RENEW,
+ AFB_SESSION_CHECK
+};
+
+// API definition
+struct AFB_restapi
+{
+ const char *name;
+ enum AFB_sessionE session;
+ json_object* (*callback)();
+ const char *info;
+};
+
+// Plugin definition
+struct AFB_plugin
+{
+ enum AFB_pluginE type;
+ const char *info;
+ const char *prefix;
+ const struct AFB_restapi *apis;
+ void (*freeCtxCB)(void*); // callback to free application context [null for standard free]
+};
+
+typedef enum AFB_pluginE AFB_pluginE;
+typedef enum AFB_sessionE AFB_sessionE;