]> rtime.felk.cvut.cz Git - frescor/frsh-forb.git/commitdiff
fwp_mngr: Both interfaces run in one thread
authorTuka Martin <tukamart@fel.cvut.cz>
Mon, 14 Mar 2011 01:08:19 +0000 (02:08 +0100)
committerTuka Martin <tukamart@fel.cvut.cz>
Mon, 14 Mar 2011 01:08:19 +0000 (02:08 +0100)
Interface for recieving information from stations and
interface for running frm running via one executor.
Moreover, deleted auto-generated files.

src/fwp/fwp/mngr/fwp_mngr.c
src/fwp/fwp/mngr/wifi_conditions_interface-common.c [deleted file]
src/fwp/fwp/mngr/wifi_conditions_interface-skels.c [deleted file]
src/fwp/fwp/mngr/wifi_conditions_interface.h [deleted file]
src/fwp/fwp/wifi_agent/Makefile.omk

index 9fcd8dfc97fb4ff13bc7ebca5328257d6746721a..6eb248372dfa7638a589475bb2908549ab64ba98 100644 (file)
@@ -174,7 +174,10 @@ int main(int argc, char *argv[])
        bool opt_daemon = false;
        char *opt_pidfile = NULL;
 
-       forb_orb wifi_orb;
+       forb_executor_t executor;
+       fres_resource_manager frm_ret;
+       struct frm_data frm_data;
+
        wifi_agent_idl wai;
        struct intern_data intern_data;
        
@@ -213,12 +216,9 @@ int main(int argc, char *argv[])
 
        orb = forb_init(&argc, &argv, &attr);
        if (!orb) error(1, errno, "forb_init");
-
-       wifi_orb = forb_init(&argc, &argv, NULL); 
-       if (!wifi_orb) error(1, errno, "forb_init");    
        
        /* Cration of an object implementing myinterface */
-        wai = forb_wifi_agent_idl_new(wifi_orb, &wifi_impl, &intern_data);
+        wai = forb_wifi_agent_idl_new(orb, &wifi_impl, &intern_data);
         
        /* We can register our object under a name, so that other
          * processes can use it. */
@@ -226,18 +226,35 @@ int main(int argc, char *argv[])
 
        /* Initialize head of linked list */
        ap_list_init_head(&priv.list_head);
+       
+       //create executor and register 2 interfaces
+       ret = forb_executor_init(&executor);
+       if (ret) goto error;
+       
+               //1. interface - forb_execute_object(wai); execute      
+               ret = forb_executor_register_object(&executor, wai);
+               if (ret) goto destroy_and_error;
 
-        /* Process incomming requests to this object */
-        forb_execute_object(wai);
+               ret = forb_signal_server_ready(orb);
+               if (ret) goto destroy_and_error;
 
-       //TODO: handle 2 parallel executions? (forb_execute_object <-> frm_register_and_run)
+               //2. interface - frm_register_and_run(orb, &frm); execute
+               fres_block_register_fwp();
 
-       fres_block_register_fwp();
-       ret = frm_register_and_run(orb, &frm);
+               frm_ret = frm_register(orb, &frm_data, &executor, &frm);
+               if (!frm_ret) {
+                       ret = -1;
+                       goto destroy_and_error;
+               }
+               
+               forb_daemon_ready();
+       
+       ret = forb_executor_run(&executor);
 
-       if (ret != 0) {
-               error(1, errno, "frm_generic_run");
-       }
+destroy_and_error:
+       forb_executor_destroy(&executor);
+error:
+       error(1, errno, "frm_generic_run");
        
        return 0;
 }
diff --git a/src/fwp/fwp/mngr/wifi_conditions_interface-common.c b/src/fwp/fwp/mngr/wifi_conditions_interface-common.c
deleted file mode 100644 (file)
index 5c7cea6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * This file was generated by forb-idl - DO NOT EDIT!
- */
-
-#include "wifi_conditions_interface.h"
-#include <forb/cdr.h>
-#include <forb/object.h>
-
-CORBA_boolean struct_t_serialize(FORB_CDR_Codec *codec, const struct_t *ptr)
-{
-  if (!CORBA_long_serialize(codec, &ptr->rate)) goto ser_exception;
-  if (!CORBA_string_serialize(codec, &ptr->client_mac_ddr)) goto ser_exception;
-  return CORBA_TRUE;
-ser_exception:
-  return CORBA_FALSE;
-}
-
-CORBA_boolean struct_t_deserialize(FORB_CDR_Codec *codec, struct_t *ptr)
-{
-  if (!CORBA_long_deserialize(codec, &ptr->rate)) goto ser_exception;
-  if (!CORBA_string_deserialize(codec, &ptr->client_mac_ddr)) goto ser_exception;
-  return CORBA_TRUE;
-ser_exception:
-  return CORBA_FALSE;
-}
-
diff --git a/src/fwp/fwp/mngr/wifi_conditions_interface-skels.c b/src/fwp/fwp/mngr/wifi_conditions_interface-skels.c
deleted file mode 100644 (file)
index acf4f13..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * This file was generated by forb-idl - DO NOT EDIT!
- */
-
-#include "wifi_conditions_interface.h"
-
-#include <forb/cdr.h>
-#include <forb/forb-internal.h>
-#include <forb/object.h>
-
-#define _wifi_conditions_interface_impl(obj) ((struct forb_wifi_conditions_interface_impl*)(obj)->implementation)
-
-static const struct forb_interface wifi_conditions_interface_interface;
-
-static void
-forb_skel_wifi_conditions_interface_add(FORB_CDR_Codec *cin, FORB_CDR_Codec *cout, wifi_conditions_interface _obj, struct forb_env *env)
-{
-  if (_wifi_conditions_interface_impl(_obj) && _wifi_conditions_interface_impl(_obj)->add) {
-    CORBA_long rate;
-    CORBA_string client_mac_addr;
-    CORBA_long _forb_ret;
-    if (!CORBA_long_deserialize(cin, &rate)) {
-      env->major = FORB_EX_MARSHAL; goto exception;
-    }
-    if (!CORBA_string_deserialize(cin, &client_mac_addr)) {
-      env->major = FORB_EX_MARSHAL; goto exception;
-    }
-    _forb_ret = _wifi_conditions_interface_impl(_obj)->add(_obj, rate, client_mac_addr, env);
-    if (forb_exception_occurred(env)) goto exception;
-    CORBA_long_serialize(cout, &_forb_ret);
-exception:;
-    forb_free(client_mac_addr);
-  } else {
-    env->major = FORB_EX_NO_IMPLEMENT;
-  }
-}
-
-static void
-forb_skel_wifi_conditions_interface_get_last(FORB_CDR_Codec *cin, FORB_CDR_Codec *cout, wifi_conditions_interface _obj, struct forb_env *env)
-{
-  if (_wifi_conditions_interface_impl(_obj) && _wifi_conditions_interface_impl(_obj)->get_last) {
-    CORBA_long rate;
-    CORBA_string client_mac_addr;
-    _wifi_conditions_interface_impl(_obj)->get_last(_obj, &rate, &client_mac_addr, env);
-    if (forb_exception_occurred(env)) goto exception;
-    CORBA_long_serialize(cout, &rate);
-    CORBA_string_serialize(cout, &client_mac_addr);
-exception:;
-    forb_free(client_mac_addr);
-  } else {
-    env->major = FORB_EX_NO_IMPLEMENT;
-  }
-}
-
-static const forb_skel_func wifi_conditions_interface_skeletons[2] = {
-  forb_skel_wifi_conditions_interface_add,
-  forb_skel_wifi_conditions_interface_get_last,
-};
-
-static const struct forb_interface wifi_conditions_interface_interface = {
-  .name = "wifi_conditions_interface",
-  .num_methods = 2,
-  .skeletons = wifi_conditions_interface_skeletons,
-  .type_hash = 0 /* not implemented */
-};
-
-wifi_conditions_interface forb_wifi_conditions_interface_new(forb_orb orb, const struct forb_wifi_conditions_interface_impl *impl,void *instance_data)
-{
-  wifi_conditions_interface obj = forb_object_new(orb, NULL, 0);
-  if (obj) {
-    obj->instance_data = instance_data;
-    obj->implementation = impl;
-    obj->interface = &wifi_conditions_interface_interface;
-  }
-  return obj;
-}
-
-
diff --git a/src/fwp/fwp/mngr/wifi_conditions_interface.h b/src/fwp/fwp/mngr/wifi_conditions_interface.h
deleted file mode 100644 (file)
index 3981b1b..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * This file was generated by forb-idl - DO NOT EDIT!
- */
-
-#ifndef wifi_conditions_interface_H
-#define wifi_conditions_interface_H 1
-#define FORB_IDL_SERIAL 0
-#include <forb/cdr_codec.h>
-#include <forb/object_type.h>
-#include <forb/basic_types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/** typedefs **/
-#if !defined(_struct_t_defined)
-#define _struct_t_defined 1
-typedef struct struct_t_type struct_t;
-struct struct_t_type {
-CORBA_long rate;
-CORBA_string client_mac_ddr;
-};
-CORBA_boolean struct_t_serialize(FORB_CDR_Codec *codec, const struct_t *ptr);
-CORBA_boolean struct_t_deserialize(FORB_CDR_Codec *codec, struct_t *ptr);
-#endif
-
-#if !defined(FORB_DECL_wifi_conditions_interface)
-#define FORB_DECL_wifi_conditions_interface 1
-  #if !defined(_wifi_conditions_interface_defined)
-  #define _wifi_conditions_interface_defined 1
-    typedef forb_object wifi_conditions_interface;
-  #endif
-  #define wifi_conditions_interface_serialize(codec, obj) forb_object_serialize((codec), (obj))
-  #define wifi_conditions_interface_deserialize(codec, obj) forb_object_deserialize((codec), (obj))
-struct forb_wifi_conditions_interface_impl {
-  CORBA_long   (*add)(wifi_conditions_interface _obj, const CORBA_long rate, const CORBA_char * client_mac_addr, CORBA_Environment *ev);
-  void (*get_last)(wifi_conditions_interface _obj, CORBA_long* rate, CORBA_string* client_mac_addr, CORBA_Environment *ev);
-};
-
-  wifi_conditions_interface forb_wifi_conditions_interface_new(forb_orb orb,
-                 const struct forb_wifi_conditions_interface_impl *impl,
-                 void *instance_data);
-
-#endif
-
-
-/** stub prototypes **/
-CORBA_long wifi_conditions_interface_add(wifi_conditions_interface _obj, const CORBA_long rate, const CORBA_char * client_mac_addr, CORBA_Environment *ev);
-void wifi_conditions_interface_get_last(wifi_conditions_interface _obj, CORBA_long* rate, CORBA_string* client_mac_addr, CORBA_Environment *ev);
-
-/** Method indices */
-
-#ifndef __wifi_conditions_interface__method_indices
-#define __wifi_conditions_interface__method_indices
-typedef enum {
-       wifi_conditions_interface_add__method_index,
-       wifi_conditions_interface_get_last__method_index
-} wifi_conditions_interface__method_indices;
-#endif /* __wifi_conditions_interface__method_indices */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-#undef FORB_IDL_SERIAL
index 733a9b1a191ea3dc2623fe0be0f16dc048d75cdf..216b33cd9e091141649713af94dda3e7f4101b09 100644 (file)
@@ -1,7 +1,7 @@
 bin_PROGRAMS = wifi_agent
-wifi_agent_SOURCES = wifi_agent.c #wifi_agent_idl-stubs.c wifi_agent_idl-common.c
+wifi_agent_SOURCES = wifi_agent.c
 
-include_HEADERS = nl80211.h #wifi_agent_idl.h
+include_HEADERS = nl80211.h 
 lib_LOADLIBES += forb fosa pthread rt ulut
 PKG_CONFIG ?= pkg-config
 
@@ -24,7 +24,6 @@ $(error Cannot find development files for any supported version of libnl)
 endif
 
 LIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
-#lib_LOADLIBES += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
 CFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME))
 
 wifi_agent_CLIENT_IDL = wifi_agent_idl.idl