Thanks Adam, this is looking great. (One probably inconsequential note below.) Note that since I pushed the patch to export all of the headers just now, there is are a couple of new places to change postboot.h -> sysconfig.h when you merge/rebase: in src/CMakeLists.txt and in matahari.spec.
cheers, Zane.
On 20/07/11 21:33, Adam Stokes wrote:
diff --git a/src/sysconfig/sysconfig-qmf.cpp b/src/sysconfig/sysconfig-qmf.cpp new file mode 100644 index 0000000..1cacd87 --- /dev/null +++ b/src/sysconfig/sysconfig-qmf.cpp @@ -0,0 +1,163 @@
<snip>
+gboolean +ConfigAgent::invoke(qmf::AgentSession session, qmf::AgentEvent event, gpointer user_data) +{
- int rc = 0;
- uint32_t flags;
- if (event.getType() != qmf::AGENT_METHOD) {
return TRUE;
- }
- const std::string& methodName(event.getMethodName());
- if (methodName == "run_uri") {
flags = event.getArguments()["flags"].asInt32();
I guess this should now be asUInt32().
if((is_configured(flags)) == 0) {
rc = mh_sysconfig_run_uri(event.getArguments()["uri"].asString().c_str(),
flags,
event.getArguments()["scheme"].asString().c_str());
if (rc == 0) {
set_configured();
}
}
event.addReturnArgument("configured", rc);
- } else if (methodName == "run_string") {
flags = event.getArguments()["flags"].asInt32();
if((is_configured(flags)) == 0) {
rc = mh_sysconfig_run_string(event.getArguments()["data"].asString().c_str(),
flags,
event.getArguments()["scheme"].asString().c_str());
if (rc == 0) {
set_configured();
}
}
event.addReturnArgument("configured", rc);
- } else if (methodName == "query") {
flags = event.getArguments()["flags"].asInt32();
Ditto.
if((is_configured(flags)) == 0) {
rc = mh_sysconfig_query(event.getArguments()["query"].asString().c_str(),
event.getArguments()["data"].asString().c_str(),
flags,
event.getArguments()["scheme"].asString().c_str());
}
event.addReturnArgument("configured", rc);
- } else if (methodName == "is_configured") {
rc = is_configured(0);
_instance.setProperty("is_postboot_configured", rc);
event.addReturnArgument("configured", rc);
- } else {
session.raiseException(event, MH_NOT_IMPLEMENTED);
goto bail;
- }
- session.methodSuccess(event);
+bail:
- return TRUE;
+}