Hubertus Franke wrote:
In our hooking scheme we therefore provide the ability to attach
to so called kernel events a callback function. Any kernel code
can attach a callback function. This is part of our core.
Any classtype (not part of the core) can register a callback at
any of those events, so typically only limited
events are "hooked" for a particular type. Regardless, we have
function stacking, rather then object stacking.
I'm assuming that this means several clients can use the same callback simultaneously?
Yes, and that has been done. Currently we have two such classtype (class task and network class) both supplied as independent "modules" atop the ckrm core.
PAGG by itself manages the proper association of a (or several)
"transparent" group object with the task. The functionality
hidden behind the group object
still needs to be implemented by the group object itself.
In CKRM this is similar, yet, the class object is associated with
a particular class type. All interactions with the user component
and classification engine are architected by the higher layers of CKRM,
in that classes have automatic representation in RCFS and RBCE if
those are loaded.
So here are some of the stickling points, we need to work on ...
(a) how can PAGG be made general enough so we can provide generic
KernelObject <-> ClassObject associations .. not just tasks groups.
I would suggest that rather than extending PAGG, separate mechanisms similar in design to PAGG be created for each KernelObject for which such associations are required. Perhaps the generic component of such mechanisms could be separated out into a generic package and then each specific mechanism just provides the specialization for its KernelObject type. I'd imagine that the main difference between the specialized packages would be (apart from the different type of KernelObject) in the set of callbacks provided.
(b) Can CSA use the extended rbce (CRBCE) instead of PAGG to
do its accounting ?
From my (possibly incorrect) understanding of the above description, one thing that PAGG provides to its clients that CKRM doesn't is the ability to attach some private data to task structs and it passes that data to the client as part of the callback. Am I correct in this interpretation?
Peter