Alan Maguire wrote: > Renee Danson wrote: >> On Thu, Jan 29, 2009 at 02:29:45PM -0500, Anurag S. Maskey wrote: >> >>> I think this is a typo in the door fuction nwamd. I want to confirm >>> that I'm not missing anything. >>> >>> nwam_*_enable() calls nwam_action() with >>> NWAM_REQUEST_TYPE_*_ACTION. This command is then passed to the >>> door function door_switch() in nwamd. door_switch() on the other >>> hand is checking for NWAM_EVENT_TYPE_*, which I am guessing is a >>> typo and should be NWAM_REQUEST_TYPE_*, right? >>> >> >> Hmm. We seem to have two different namespaces, probably the result of >> work being done at two different points in time, possibly by two >> different >> people! I think the different names are more than just typos; we need >> to figure out how this interface is really being used and make sure it >> works properly. >> >> libnwam.h (the public header for the library) has a list of "Event >> notification definitions", which are of the form NWAM_EVENT_TYPE_<foo>. >> One of these is the NWAM_EVENT_TYPE_ENM_ACTION which is handled by the >> door server in nwamd (implemented in the door_switch() function). But >> there aren't any corresponding event types for Locs or NCPs, as you >> point out. >> >> libnwam_impl.h (the private header for the library) includes an >> nwam_request_type_t enum, which covers the NWAM_REQUEST_TYPE_<foo> >> definitions. This one does include ENM_ACTION, LOC_ACTION, and >> NCP_ACTION defs. >> >> It seems to me that the door interface is being used in two ways: >> >> * Making (likely synchronous) queries of nwamd about the current >> state (what's the active ncp? is enm foo active?), or to request >> that nwamd do things (such as activating a particular location). >> >> * Asking for (and later receiving?) notifications of various events. >> >> > Yep, you're dead right. >> I suspect the NWAM_REQUEST_TYPE_<foo> definitions were introduced by >> someone working on the former, while the NWAM_EVENT_TYPE_<foo> defs >> were introduced by someone working on the latter. >> >> This conflict obviously needs to be resolved. Alan and Michael, the >> two of you have done the most work in libnwam and nwamd; do you have >> input on this? >> >> > I think I introduced the requests, I could be > wrong. The events are in the public > header so the UI can use them, but I think > the requests should be moved there too so > that nwamadm can use them. Actually, scratch that. They should stay in libnwam_impl.h, since they will only be used under the hood by the libnwam calls Anurag described to get the active objects. door_if.c in nwamd has a #include for libnwam_impl.h. I don't think stuff like this belongs in the public header since it's only needed by the daemon, but I could be wrong.
Alan
