⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagedispatcher.java.svn-base

📁 snmp hibernate 源码, 类似hibernate的映射.
💻 SVN-BASE
字号:
/*_############################################################################  _##   _##  SNMP4J - MessageDispatcher.java    _##   _##  Copyright 2003-2006  Frank Fock and Jochen Katz (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;import org.snmp4j.smi.Address;import org.snmp4j.mp.*;import java.util.Collection;import org.snmp4j.asn1.BERInputStream;import org.snmp4j.transport.TransportListener;import java.nio.ByteBuffer;/** * The <code>MessageDispatcher</code> interface defines common services of * instances that process incoming SNMP messages and dispatch them to * interested {@link CommandResponder} instances. It also provides a service * to send out outgoing SNMP messages. * <p> * A <code>MessageDispatcher</code> needs at least one {@link TransportMapping} * and at least one {@link MessageProcessingModel} in order to be able to * process any messages. * * @author Frank Fock * @version 1.6 */public interface MessageDispatcher extends TransportListener {  /**   * Gets the next unique request ID. The returned ID is unique across   * the last 2^31-1 IDs generated by this message dispatcher.   * @return   *    an integer value in the range 1..2^31-1. The returned ID can be used   *    to map responses to requests send through this message dispatcher.   * @since 1.1   */  int getNextRequestID();  /**   * Adds a {@link MessageProcessingModel} to the dispatcher. In order to   * support a specific SNMP protocol version, the message dispatcher needs   * a message processing model to process messages before they can be   * dispatched.   * @param model   *    a <code>MessageProcessingModel</code> instance.   */  void addMessageProcessingModel(MessageProcessingModel model);  /**   * Removes a previously added {@link MessageProcessingModel} from   * the dispatcher.   * @param model   *    a <code>MessageProcessingModel</code> instance.   */  void removeMessageProcessingModel(MessageProcessingModel model);  /**   * Gets the <code>MessageProcessingModel</code> for the supplied message   * processing model ID.   *   * @param messageProcessingModel   *    a message processing model ID   *    (see {@link MessageProcessingModel#getID()}).   * @return   *    a MessageProcessingModel instance if the ID is known, otherwise   *    <code>null</code>   */  MessageProcessingModel getMessageProcessingModel(int messageProcessingModel);  /**   * Adds a {@link TransportMapping} to the dispatcher. The transport mapping   * is used to send and receive messages to/from the network.   * @param transport   *   a <code>TransportMapping</code> instance.   */  void addTransportMapping(TransportMapping transport);  /**   * Removes a previously added {@link TransportMapping} from   * the dispatcher.   * @param transport   *    a <code>TransportMapping</code> instance.   * @return   *    the <code>TransportMapping</code> instance supplied if it   * could be successfully removed, <code>null</code> otherwise.   */  TransportMapping removeTransportMapping(TransportMapping transport);  /**   * Gets the <code>Collection</code> of transport mappings in this message   * dispatcher.   * @return Collection   */  Collection getTransportMappings();  /**   * Returns a transport mapping that can handle the supplied address.   * @param destAddress   *    an Address instance.   * @return   *    a <code>TransportMapping</code> instance that can be used to sent   *    a SNMP message to <code>destAddress</code> or <code>null</code> if   *    such a transport mapping does not exists.   * @since 1.6   */  TransportMapping getTransport(Address destAddress);  /**   * Adds a {@link CommandResponder} instance to the message dispatcher.   * Successfully processed SNMP messages will be presented to all command   * responder (in the order in which they have been added) until a responder   * uses the {@link CommandResponderEvent#setProcessed(boolean processed)}   * to set the processed status of the event to <code>true</code>.   * @param listener   *    a <code>CommandResponder</code> instance.   */  void addCommandResponder(CommandResponder listener);  /**   * Removes a previously added {@link CommandResponder} instance from   * the message dispatcher.   * @param listener  *    a <code>CommandResponder</code> instance.   */  void removeCommandResponder(CommandResponder listener);  /**   * Sends a PDU to the supplied transport address.   * @param transportMapping   *    the <code>TransportMapping</code> to be used to send the PDU. If   *    <code>transportMapping</code> is <code>null</code> the message   *    dispatcher will determine the appropriate transport mapping for the   *    given transport address.   * @param transportAddress   *    the target transport address.   * @param messageProcessingModel   *    typically the SNMP version.   * @param securityModel   *    Security Model to use.   * @param securityName   *    on behalf of this principal.   * @param securityLevel   *    Level of Security requested.   * @param pdu   *    the SNMP Protocol Data Unit   * @param expectResponse   *    <code>true</code> if a response is expected and a state reference should   *    be saved (if needed for the supplied message processing model).   * @return   *    status information   * @throws MessageException   */  PduHandle sendPdu(TransportMapping transportMapping,                    Address transportAddress,                    int messageProcessingModel,    // typically, SNMP version                    int securityModel,             // Security Model to use                    byte[] securityName,                    int securityLevel,                    /* the following parameters are given in ScopedPDU                       byte[] contextEngineID,                       byte[] contextName,                     */                     PDU pdu,                     boolean expectResponse) throws MessageException;  /**   * Sends a PDU to the supplied transport address. This method behaves like   * a call to {@link #sendPdu(TransportMapping transportMapping,   * Address transportAddress, int messageProcessingModel,   * int securityModel, byte[] securityName, int securityLevel, PDU pdu,   * boolean expectResponse)} with <code>transportMapping</code> set to   * <code>null</code>.   *   * @param transportAddress   *    the target transport address.   * @param messageProcessingModel   *    typically the SNMP version.   * @param securityModel   *    Security Model to use.   * @param securityName   *    on behalf of this principal.   * @param securityLevel   *    Level of Security requested.   * @param pdu   *    the SNMP Protocol Data Unit   * @param expectResponse   *    <code>true</code> if a response is expected and a state reference should   *    be saved (if needed for the supplied message processing model).   * @return   *    status information   * @throws MessageException   */  PduHandle sendPdu(Address transportAddress,                    int messageProcessingModel,    // typically, SNMP version                    int securityModel,             // Security Model to use                    byte[] securityName,                    int securityLevel,                    /* the following parameters are given in ScopedPDU                       byte[] contextEngineID,                       byte[] contextName,                     */                     PDU pdu,                     boolean expectResponse) throws MessageException;  /**   * Returns a response PDU to the sender of the corresponding request PDU.   * @param messageProcessingModel int   * @param securityModel int   * @param securityName byte[]   * @param securityLevel int   * @param pdu PDU   * @param maxSizeResponseScopedPDU int   * @param stateReference StateReference   * @param statusInformation StatusInformation   * @throws MessageException   * @return int   */  int returnResponsePdu(int messageProcessingModel,                        int securityModel,                        byte[] securityName,                        int securityLevel,                        /* the following parameters are given in ScopedPDU                           byte[] contextEngineID,                           byte[] contextName,                         */                         PDU pdu,                         int maxSizeResponseScopedPDU,                         StateReference stateReference,                         StatusInformation statusInformation)       throws MessageException;  /**   * Process an incoming SNMP message. The message is processed and dispatched   * according to the message's content, the message processing models, and the   * command responder available to the dispatcher.   * @param sourceTransport   *    a <code>TransportMapping</code> instance denoting the transport that   *    received the message and that will be used to send any responses to   *    this message. The <code>sourceTransport</code> has to support the   *    <code>incomingAddress</code>'s implementation class.   * @param incomingAddress   *    the <code>Address</code> from which the message has been received.   * @param wholeMessage   *    an <code>BERInputStream</code> containing the received SNMP message.   *    The supplied input stream must support marks, otherwise an   *    <code>IllegalArgumentException</code> is thrown.   * @deprecated   *    Use {@link #processMessage(TransportMapping,Address,ByteBuffer)}   *    instead.   */  void processMessage(TransportMapping sourceTransport,                      Address incomingAddress,                      BERInputStream wholeMessage);  /**   * Process an incoming SNMP message. The message is processed and dispatched   * according to the message's content, the message processing models, and the   * command responder available to the dispatcher.   * @param sourceTransport   *    a <code>TransportMapping</code> instance denoting the transport that   *    received the message and that will be used to send any responses to   *    this message. The <code>sourceTransport</code> has to support the   *    <code>incomingAddress</code>'s implementation class.   * @param incomingAddress   *    the <code>Address</code> from which the message has been received.   * @param wholeMessage   *    an <code>ByteBuffer</code> containing the received SNMP message.   */  void processMessage(TransportMapping sourceTransport,                      Address incomingAddress,                      ByteBuffer wholeMessage);  /**   * Release any state references associated with the supplied   * <code>PduHandle</code> in the specified message processing model.   * @param messageProcessingModel   *    a message processing model ID.   * @param pduHandle   *    the <code>PduHandle</code> that identifies a confirmed class message.   * @see MessageProcessingModel   */  void releaseStateReference(int messageProcessingModel,                             PduHandle pduHandle);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -