]> rtime.felk.cvut.cz Git - frescor/forb.git/blobdiff - src/exec_req.h
Prepared for multiple executors in a single address space
[frescor/forb.git] / src / exec_req.h
index 57b17ba7da6610ed980ac10a24704b1f3f15b080..b8e2147a0fe9a950c49945cd51307aa50b801786 100644 (file)
 #include <forb/cdr.h>
 #include <ul_list.h>
 #include "executor.h"
+#include "request.h"
+
+/**
+ * Distinguishing execution methods of a request.
+ */
+enum FORB_EXEC_REQ_TYPE {
+       local,          // no serialization used
+       remote
+};
 
 /**
  * Request for ::forb_executor_t.
@@ -74,6 +83,8 @@ typedef struct forb_exec_req {
        unsigned method_index;  /**< Mehotd number to be invoked on the object @a obj. */
        FORB_CDR_Codec codec;   /**< Bufffer with serialized request parameters. */
        ul_list_node_t node;    /**< Node for forb_executor_t::requests. */
+       enum FORB_EXEC_REQ_TYPE request_type; /**< Execution method. */
+       forb_request_t *input_request; /**< Input request data for the case of local invocation */
 } forb_exec_req_t;
 
 UL_LIST_CUST_DEC(forb_exec_req_nolock, /* cust_prefix */