int (*session_accept_callback) (stream_session_t * new_session);
/* Connection request callback */
- int (*session_connected_callback) (u32 app_index, u32 api_context,
+ int (*session_connected_callback) (u32 app_index, u32 opaque,
stream_session_t * s, u8 code);
/** Notify app that session is closing */
*/
u32 connects_seg_manager;
- /* Lookup tables for listeners. Value is segment manager index */
+ /** Lookup tables for listeners. Value is segment manager index */
uword *listeners_table;
+ /** First segment manager has in the the first segment the application's
+ * event fifo. Depending on what the app does, it may be either used for
+ * a listener or for connects. */
u32 first_segment_manager;
+ u8 first_segment_manager_in_use;
/** Segment manager properties. Shared by all segment managers */
segment_manager_properties_t sm_properties;
} application_t;
+#define APP_INVALID_SEGMENT_MANAGER_INDEX ((u32) ~0)
+
application_t *application_new ();
int
application_init (application_t * app, u32 api_client_index, u64 * options,
s);
segment_manager_t *application_get_connect_segment_manager (application_t *
app);
+int application_is_proxy (application_t * app);
+int application_add_segment_notify (u32 app_index, u32 fifo_segment_index);
#endif /* SRC_VNET_SESSION_APPLICATION_H_ */