org.snmp4j.agent.io.MOServerPersistence Maven / Gradle / Ivy
/*_############################################################################ _## _## SNMP4J-Agent - MOServerPersistence.java _## _## Copyright (C) 2005-2009 Frank Fock (SNMP4J.org) _## _## Licensed under the Apache License, Version 2.0 (the "License"); _## you may not use this file except in compliance with the License. _## You may obtain a copy of the License at _## _## http://www.apache.org/licenses/LICENSE-2.0 _## _## Unless required by applicable law or agreed to in writing, software _## distributed under the License is distributed on an "AS IS" BASIS, _## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. _## See the License for the specific language governing permissions and _## limitations under the License. _## _##########################################################################*/ package org.snmp4j.agent.io; import org.snmp4j.smi.OctetString; import java.io.IOException; import java.util.LinkedHashMap; import org.snmp4j.agent.ManagedObject; import java.util.Iterator; import org.snmp4j.agent.SerializableManagedObject; import java.util.HashMap; import java.util.Map.Entry; import org.snmp4j.agent.MOScope; import org.snmp4j.agent.MOContextScope; import org.snmp4j.log.LogFactory; import org.snmp4j.log.LogAdapter; import org.snmp4j.agent.MOServer; import java.util.HashSet; import java.util.Set; import java.util.Arrays; /** * The
instance to store the data. * @throws IOException * if the output stream cannot be written. */ public synchronized void saveData(MOOutput output) throws IOException { HashMap serializableMO = buildCache(); // write context independent data LinkedHashMap mos = (LinkedHashMap) serializableMO.get(null); if (logger.isDebugEnabled()) { logger.debug("Trying to write MIB data for all contexts"); } if (mos != null) { writeData(output, null, mos); } else { output.writeSequence(new Sequence(0)); } Set contextSet = new HashSet(); for (int i=0; iMOServerPersistence
provides persistence operations * to load and save serialized MIB data. * * @author Frank Fock * @version 1.4 */ public class MOServerPersistence { private static final LogAdapter logger = LogFactory.getLogger(MOServerPersistence.class); private MOServer[] servers; public MOServerPersistence(MOServer server) { this(new MOServer[] { server }); } public MOServerPersistence(MOServer[] moServers) { this.servers = moServers; } private HashMap buildCache() { HashMap serializableMO = new HashMap(); serializableMO.clear(); for (int i=0; iMOOutput