...
For each context create a separate
ManagedObject
instance and register it with the target context usingMOServer.register
.Code Block language java MOScalar myScalarObjAContext1 = new MyScalarObjA(..); MOScalar myScalarObjAContext2 = new MyScalarObjA(..); MOServer server = ..; server.register(myScalarObjAContext1, new OctetString("context1")); server.register(myScalarObjAContext2, new OctetString("context2"));
Use the same
ManagedObject
instance for all target contexts by callingMOServer.register
repeatedly for each context with the same instance. The single instance is then responsible to deliver and update its content (MIB data) based on the context information given in theManagedObject.get
,.next
,.prepare
,.commit
,.undo
, and.cleanup
SubRequest
parameter in theMOScope
(in fact it is then aMOContextScope
) member.Code Block language java OctetString context1 = new OctetString("context1"); OctetString context2 = new OctetString("context2"); MOScalar myScalarObjA = new MyScalarObjA(..) { public void get(SubRequest request) { if (request.getScope() instanceof MOContextScope) { MOContextScope scope = (MOContextScope)request.gewtScopegetScope(); if (context1.equals(scope.getContext()) { // return value from context1 .. } else if (context2.equals(scope.getContext()) { // return value from context2 .. } else { // cannot be reached } } } } MOServer server = ..; server.register(myScalarObjA, context1); server.register(myScalarObjA, context2));
- Any combination of the above two approaches will work too.
...