/* * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package com.sun.jmx.snmp.internal; import java.net.InetAddress; import com.sun.jmx.snmp.SnmpSecurityException; import com.sun.jmx.snmp.SnmpTooBigException; import com.sun.jmx.snmp.SnmpStatusException; import com.sun.jmx.snmp.SnmpPdu; import com.sun.jmx.snmp.SnmpMsg; import com.sun.jmx.snmp.internal.SnmpSecurityCache; import com.sun.jmx.snmp.SnmpUnknownSecModelException; import com.sun.jmx.snmp.SnmpBadSecurityLevelException; /** *
An SnmpOutgoingRequest
handles the marshalling of the message to send.
This API is a Sun Microsystems internal API and is subject * to change without notice.
* @since 1.5 */ public interface SnmpOutgoingRequest { /** * Returns the cached security data used when marshalling the call as a secure one. * @return The cached data. */ public SnmpSecurityCache getSecurityCache(); /** * Encodes the message to send and puts the result in the specified byte array. * * @param outputBytes An array to receive the resulting encoding. * * @exception ArrayIndexOutOfBoundsException If the result does not fit * into the specified array. */ public int encodeMessage(byte[] outputBytes) throws SnmpStatusException, SnmpTooBigException, SnmpSecurityException, SnmpUnknownSecModelException, SnmpBadSecurityLevelException; /** * Initializes the message to send with the passed Pdu. *
* If the encoding length exceeds maxDataLength
,
* the method throws an exception.
p
is
* not valid.
* @exception SnmpTooBigException If the resulting encoding does not fit
* into maxDataLength
bytes.
* @exception ArrayIndexOutOfBoundsException If the encoding exceeds
* maxDataLength
.
*/
public SnmpMsg encodeSnmpPdu(SnmpPdu p,
int maxDataLength)
throws SnmpStatusException, SnmpTooBigException;
/**
* Returns a stringified form of the message to send.
* @return The message state string.
*/
public String printMessage();
}