forb_orb orb;
struct fcb fcb_data;
fres_contract_broker fcb;
+ forb_executor_t executor;
+ int ret;
orb = forb_init(&argc, &argv, "fcb");
if (!orb) error(1, errno, "FORB initialization failed");
fcb_resource_init_root_field(&fcb_data);
fcb = forb_fres_contract_broker_new(orb, &impl, &fcb_data);
+ if (!fcb) error(1, errno, "forb_fres_contract_broker_new failed");
- if (forb_register_reference(fcb, fres_contract_broker_reg_name) != 0) {
- error(1, errno, "forb_register_reference() failed");
- }
+ /* Prepare executor before we register the fcb reference,
+ * so that no reuqests are lost */
+ ret = forb_executor_init(&executor);
+ if (ret) error(1, errno, "forb_executor_init failed");
+
+ ret = forb_executor_register_object(&executor, fcb);
+ if (ret) error(1, errno, "forb_executor_register_object failed");
+
+ ret = forb_register_reference(fcb, fres_contract_broker_reg_name);
+ if (ret) error(1, errno, "forb_register_reference() failed");
- forb_execute_object(fcb);
+ ul_logmsg("Waiting for requests\n");
+ ret = forb_executor_run(&executor);
+ if (ret) error(1, errno, "forb_executor_run failed");
return 0;
}