afb-method: creation
[src/app-framework-binder.git] / include / local-def.h
index c007088..735a34b 100644 (file)
 
 
 
-
-#define AJQ_VERSION "0.1"
-
 /* other definitions --------------------------------------------------- */
 
 // Note: because of a bug in libmagic MAGIC_DB NULL should not be used for default
-#define MAGIC_DB "/usr/share/misc/magic.mgc"
 #define OPA_INDEX "index.html"
 #define MAX_ALIAS 10           // max number of aliases
-#define COOKIE_NAME   "AJB_session"
+#define COOKIE_NAME   "afb-session"
 
 
 #define DEFLT_CNTX_TIMEOUT  3600   // default Client Connection Timeout
@@ -108,6 +104,7 @@ typedef struct {
 } AFB_errorT;
 
 typedef enum  {AFB_POST_NONE=0, AFB_POST_JSON, AFB_POST_FORM, AFB_POST_EMPTY} AFB_PostType;
+typedef enum  {AFB_MODE_LOCAL=0, AFB_MODE_REMOTE, AFB_MODE_GLOBAL} AFB_Mode;
 
 // Post Upload File Handle
 typedef struct {
@@ -130,7 +127,7 @@ typedef struct {
   int    uid;               // post uid for debug
   AFB_PostType type;        // JSON or FORM
   AFB_apiCB  completeCB;    // callback when post is completed
-  char   *private;          // use internally to keep track or partial buffer
+  char   *privatebuf;       // use internally to keep track or partial buffer
   struct MHD_PostProcessor *pp; // iterator handle
 } AFB_PostHandle;
 
@@ -156,14 +153,6 @@ typedef struct {
   size_t len;
 } AFB_aliasdir;
 
-// Command line structure hold cli --command + help text
-typedef struct {
-  int  val;        // command number within application
-  int  has_arg;    // command number within application
-  char *name;      // command as used in --xxxx cli
-  char *help;      // help text
-} AFB_options;
-
 // main config structure
 typedef struct {
   char *logname;           // logfile path for info & error log
@@ -183,15 +172,10 @@ typedef struct {
   int  apiTimeout;
   int  cntxTimeout;        // Client Session Context timeout
   int  pluginCount;        // loaded plugins count
+  AFB_Mode mode;           // mode of listening
   AFB_aliasdir *aliasdir;  // alias mapping for icons,apps,...
 } AFB_config;
 
-typedef struct {
-  int  len;        // command number within application
-  json_object *jtype;
-} AFB_privateApi;
-
-
 typedef struct {
      char    *msg;
      size_t  len;
@@ -206,7 +190,6 @@ typedef struct {
   AFB_sessionE session;
   AFB_apiCB callback;
   char *info;
-  AFB_privateApi *private;
 } AFB_restapi;
 
 // Plugin definition
@@ -251,7 +234,9 @@ typedef struct {
   AFB_plugin **plugins;
 } AFB_request;
 
-
+struct afb_req_handler;
+struct afb_req;
+struct MHD_Daemon;
 typedef struct {
   AFB_config  *config;   // pointer to current config
   // List of commands to execute
@@ -260,11 +245,13 @@ typedef struct {
   int  foreground;        // run in forground mode
   int  configsave;        // Save config on disk on start
   char *cacheTimeout;     // http require timeout to be a string
-  void *httpd;            // anonymous structure for httpd handler
+  struct MHD_Daemon *httpd;            // anonymous structure for httpd handler
   int  fakemod;           // respond to GET/POST request without interacting with sndboard
   int  forceexit;         // when autoconfig from script force exit before starting server
+  int  readyfd;           // a #fd to signal when ready to serve
   AFB_plugin **plugins;   // pointer to REST/API plugins 
   magic_t  magic;         // Mime type file magic lib
+  struct afb_req_handler *handlers;
   sigjmp_buf restartCkpt; // context save for restart set/longjmp
 } AFB_session;