-
- All Known Implementing Classes:
DefaultMOServer
public interface MOServerThe managed object server interface defines the services that a repository of managed objects needs to provide for a command responder.- Version:
- 3.1.0
- Author:
- Frank Fock
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description voidaddContext(org.snmp4j.smi.OctetString context)Adds the supplied context to the server.voidaddContextListener(ContextListener listener)Adds a context listener to the server.voidaddLookupListener(MOServerLookupListener listener, ManagedObject<?> mo)Adds a managed object lookup listener for the supplied managed object to this managed object server.org.snmp4j.smi.OctetString[]getContexts()Returns the contexts known by the server.org.snmp4j.smi.OctetString[]getRegisteredContexts(ManagedObject<?> managedObject)Returns the contexts for which the suppliedManagedObjecthas been registered.booleanisContextSupported(org.snmp4j.smi.OctetString context)Checks whether the supplied context is supported (registered) by this server.Iterator<Map.Entry<MOScope,ManagedObject<?>>>iterator()Return a read-onlyIteratorover the content of this server.booleanlock(Object owner, ManagedObject<?> managedObject)Locks a ManagedObject by the supplied owner.booleanlock(Object owner, ManagedObject<?> managedObject, long timeoutMillis)Locks a ManagedObject by the supplied owner.default ManagedObject<?>lookup(MOQuery query)Lookup the first (lexicographically ordered) managed object that matches the supplied query.default <MO extends ManagedObject<?>>
MOlookup(MOQuery query, Class<MO> managedObjectType)Lookup the first (lexicographically ordered) managed object that matches the supplied query.default ManagedObject<?>lookup(MOQuery query, LockRequest lockRequest)Deprecated.Uselookup(MOQuery, LockRequest, MOServerLookupEvent, Class)instead to specify the intended use, and event source.default ManagedObject<?>lookup(MOQuery query, LockRequest lockRequest, MOServerLookupEvent lookupEvent)Lookup the first (lexicographically ordered) managed object that matches the supplied query.<MO extends ManagedObject<?>>
MOlookup(MOQuery query, LockRequest lockRequest, MOServerLookupEvent lookupEvent, Class<MO> managedObjectType)Lookup the first (lexicographically ordered) managed object that matches the supplied query and implements the givenManagedObjectclass.voidregister(ManagedObject<?> mo, org.snmp4j.smi.OctetString context)Registers a managed object for the specified context.default booleanregisterNew(ManagedObject<?> mo, org.snmp4j.smi.OctetString context)Registers a managed object for the specified context if it has not been registered already (otherwise it does nothing but returningfalse.voidremoveContext(org.snmp4j.smi.OctetString context)Removes a context from the server.voidremoveContextListener(ContextListener listener)Removes a previously added context listener.booleanremoveLookupListener(MOServerLookupListener listener, ManagedObject<?> mo)Removes a managed object lookup listener for the specified managed object.booleanunlock(Object owner, ManagedObject<?> managedObject)Unlocks a ManagedObject that has been locked by the specified owner.ManagedObject<?>unregister(ManagedObject<?> mo, org.snmp4j.smi.OctetString context)Removes the registration of the supplied managed object for the specified context.
-
-
-
Method Detail
-
addContextListener
void addContextListener(ContextListener listener)
Adds a context listener to the server. The listener will be informed about context insertion and removal.- Parameters:
listener- aContextListenerinstance to be informed about context changes.
-
removeContextListener
void removeContextListener(ContextListener listener)
Removes a previously added context listener.- Parameters:
listener- aContextListenerinstance.
-
addContext
void addContext(org.snmp4j.smi.OctetString context)
Adds the supplied context to the server. The server however may silently ignore the request if local constraints do not allow to add the context (although this should be an exception case only).- Parameters:
context- anOctetStringrepresenting the context name to add.
-
removeContext
void removeContext(org.snmp4j.smi.OctetString context)
Removes a context from the server. Removing a context does not remove any managed objects from the server's registry.- Parameters:
context- nOctetStringrepresenting the context name to remove.
-
register
void register(ManagedObject<?> mo, org.snmp4j.smi.OctetString context) throws DuplicateRegistrationException
Registers a managed object for the specified context. A managed object can be registered for more than one context.- Parameters:
mo- aManagedObjectinstance.context- the context name for which to register themoornullif the managed oject is to be registered for all contexts (including the default context).- Throws:
DuplicateRegistrationException- if the registration conflicts (i.e. overlaps) with an already existing registration.
-
registerNew
default boolean registerNew(ManagedObject<?> mo, org.snmp4j.smi.OctetString context)
Registers a managed object for the specified context if it has not been registered already (otherwise it does nothing but returningfalse. A managed object can be registered for more than one context.- Parameters:
mo- aManagedObjectinstance.context- the context name for which to register themoornullif the managed oject is to be registered for all contexts (including the default context).- Returns:
- if the registration was successful and
falseif it overlaps with an already existing registration. - Since:
- 3.0.2
-
unregister
ManagedObject<?> unregister(ManagedObject<?> mo, org.snmp4j.smi.OctetString context)
Removes the registration of the supplied managed object for the specified context.- Parameters:
mo- aManagedObjectinstance.context- the context name for which to unregister themoornullif the managed object is to be unregistered for all contexts (including the default context). In the latter case however, explicit registrations for a particular context will not be removed!- Returns:
- the removed
ManagedObjectinstance ornullif the removal failed.
-
addLookupListener
void addLookupListener(MOServerLookupListener listener, ManagedObject<?> mo)
Adds a managed object lookup listener for the supplied managed object to this managed object server. AMOServerLookupListeneris called before the managed object is returned bylookup(MOQuery query).- Parameters:
listener- aMOServerLookupListenerinstance, for example a managed object that needs to update its state whenever it has been looked upmo- theManagedObjectthat triggers theMOServerLookupEventto be fired when it has been looked up.
-
removeLookupListener
boolean removeLookupListener(MOServerLookupListener listener, ManagedObject<?> mo)
Removes a managed object lookup listener for the specified managed object.- Parameters:
listener- aMOServerLookupListenerinstance.mo- theManagedObjectthat triggered theMOServerLookupEventto be fired when it has been looked up.- Returns:
trueif the listener could be removed orfalseif such a listener is not registered.
-
lookup
default ManagedObject<?> lookup(MOQuery query)
Lookup the first (lexicographically ordered) managed object that matches the supplied query. No locking will be performed, regardless of the setMOLockStrategy.- Parameters:
query- aMOQueryinstance.- Returns:
- the
ManagedObjectthat matches the query andnullif no such object exists.
-
lookup
default <MO extends ManagedObject<?>> MO lookup(MOQuery query, Class<MO> managedObjectType)
Lookup the first (lexicographically ordered) managed object that matches the supplied query. No locking will be performed, regardless of the setMOLockStrategy.- Type Parameters:
MO- theManagedObjecttype to lookup.- Parameters:
query- aMOQueryinstance.managedObjectType- theManagedObjectimplementation class that is supported by the caller. UseManagedObjectby default.- Returns:
- the
ManagedObjectthat matches the query andnullif no such object exists. - Since:
- 3.1.0
-
lookup
@Deprecated default ManagedObject<?> lookup(MOQuery query, LockRequest lockRequest)
Deprecated.Uselookup(MOQuery, LockRequest, MOServerLookupEvent, Class)instead to specify the intended use, and event source.Lookup the first (lexicographically ordered) managed object that matches the supplied query. Locking will be performed according to the setMOLockStrategybefore the lookup listener is fired.MOServerLookupEvents fired on behalf of this method call will report the request processing phaseMOServerLookupEvent.IntendedUse.undefined. To accurately report the phase uselookup(MOQuery, LockRequest, MOServerLookupEvent)instead. CAUTION: To make sure that the acquired lock is released after the using of the managed object has been finished, theunlock(Object, ManagedObject)method must be called then.- Parameters:
query- aMOQueryinstance.lockRequest- theLockRequestthat holds the lock owner and the timeout for acquiring a lock and returns whether a lock has been acquired or not on behalf of this lookup operation.- Returns:
- the
ManagedObjectthat matches the query andnullif no such object exists. - Since:
- 2.4.0
-
lookup
default ManagedObject<?> lookup(MOQuery query, LockRequest lockRequest, MOServerLookupEvent lookupEvent)
Lookup the first (lexicographically ordered) managed object that matches the supplied query. Locking will be performed according to the setMOLockStrategybefore the lookup listener is fired. CAUTION: To make sure that the acquired lock is released after the using of the managed object has been finished, theunlock(Object, ManagedObject)method must be called then.- Parameters:
query- aMOQueryinstance.lockRequest- theLockRequestthat holds the lock owner and the timeout for acquiring a lock and returns whether a lock has been acquired or not on behalf of this lookup operation.lookupEvent- provides additional information about the intended use and optionally a callback to be informed about the completion of the use, including a reference to its result.- Returns:
- the
ManagedObjectthat matches the query andnullif no such object exists. - Since:
- 3.0
-
lookup
<MO extends ManagedObject<?>> MO lookup(MOQuery query, LockRequest lockRequest, MOServerLookupEvent lookupEvent, Class<MO> managedObjectType)
Lookup the first (lexicographically ordered) managed object that matches the supplied query and implements the givenManagedObjectclass. Locking will be performed according to the setMOLockStrategybefore the lookup listener is fired. CAUTION: To make sure that the acquired lock is released after the using of the managed object has been finished, theunlock(Object, ManagedObject)method must be called then.- Type Parameters:
MO- theManagedObjecttype to lookup.- Parameters:
query- aMOQueryinstance.lockRequest- theLockRequestthat holds the lock owner and the timeout for acquiring a lock and returns whether a lock has been acquired or not on behalf of this lookup operation.lookupEvent- provides additional information about the intended use and optionally a callback to be informed about the completion of the use, including a reference to its result.managedObjectType- theManagedObjectimplementation class that is supported by the caller. UseManagedObjectby default.- Returns:
- the
ManagedObjectthat matches the query andnullif no such object exists. - Since:
- 3.1
-
iterator
Iterator<Map.Entry<MOScope,ManagedObject<?>>> iterator()
Return a read-onlyIteratorover the content of this server. The iterator is thread safe and can be used while the server is being modified. The remove operation of the iterator is not supported.- Returns:
- the
Iteratoron the Map.Entry instances managed by this server. EachEntryconsists of anMOScopekey instance and a correspondingManagedObjectvalue instance. If theManagedObjecthas been registered for a specific context, then aMOContextScopeis returned as key, otherwise the managed objects ownMOScopeis returned.
-
lock
boolean lock(Object owner, ManagedObject<?> managedObject)
Locks a ManagedObject by the supplied owner. Once a ManagedObject is locked, a lookup attempt will block until it is unlocked or a predefined timeout occurs.- Parameters:
owner- an Object.managedObject- the ManagedObject to lock.- Returns:
trueif the lock could be acquired,falseotherwise, i.e. if an InterruptedException has occurred.
-
lock
boolean lock(Object owner, ManagedObject<?> managedObject, long timeoutMillis)
Locks a ManagedObject by the supplied owner. Once a ManagedObject is locked, a lookup attempt will block until it is unlocked or a predefined timeout occurs.- Parameters:
owner- an Object.managedObject- the ManagedObject to lock.timeoutMillis- the number of 1/1000 seconds to wait for the lock. 0 or less disables the timeout and waits forever until the lock is released by the current owner.- Returns:
trueif the lock could be acquired,falseotherwise, i.e. if an InterruptedException or timeout has occurred.- Since:
- 1.3
-
unlock
boolean unlock(Object owner, ManagedObject<?> managedObject)
Unlocks a ManagedObject that has been locked by the specified owner. If the ManagedObject is currently locked by another owner this method returns silently.Note: In debug log mode a message is locked if the lock owner does not match the current lock owner.
- Parameters:
owner- an Object.managedObject- the ManagedObject to unlock. IfmanagedObjectisnullthen this call has no effect.- Returns:
trueif the lock has been found and released successfully,falseotherwise.
-
getContexts
org.snmp4j.smi.OctetString[] getContexts()
Returns the contexts known by the server.- Returns:
- an array of context names.
-
isContextSupported
boolean isContextSupported(org.snmp4j.smi.OctetString context)
Checks whether the supplied context is supported (registered) by this server.- Parameters:
context- a context name.- Returns:
trueif the context is support (thus has previously added byaddContext(org.snmp4j.smi.OctetString)) andfalseotherwise.
-
getRegisteredContexts
org.snmp4j.smi.OctetString[] getRegisteredContexts(ManagedObject<?> managedObject)
Returns the contexts for which the suppliedManagedObjecthas been registered.- Parameters:
managedObject- aManagedObjectinstance.- Returns:
- an array of context strings, for which
managedObjecthas been registered. If themanagedObjecthas been registered for all contexts, anullelement is included in the array. - Since:
- 1.4
-
-