All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.com.ibm.as400.access.JDInputStreamProxy Maven / Gradle / Ivy

There is a newer version: 11.1
Show newest version
///////////////////////////////////////////////////////////////////////////////
//                                                                             
// JTOpen (IBM Toolbox for Java - OSS version)                                 
//                                                                             
// Filename: JDInputStreamProxy.java
//                                                                             
// The source code contained herein is licensed under the IBM Public License   
// Version 1.0, which has been approved by the Open Source Initiative.         
// Copyright (C) 1997-2001 International Business Machines Corporation and     
// others. All rights reserved.                                                
//                                                                             
///////////////////////////////////////////////////////////////////////////////

package com.ibm.as400.access;

import java.io.InputStream;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;



// JDBC 2.0
/**

The JDInputStreamProxy class provides access to binary data using an input stream. The data is valid only within the current transaction. **/ class JDInputStreamProxy extends InputStream implements ProxyFactoryImpl { static final String copyright = "Copyright (C) 1997-2001 International Business Machines Corporation and others."; // Private data. private long pxId_; private ProxyClientConnection connection_; public int available () throws IOException { try { return connection_.callMethodReturnsInt (pxId_, "available"); } catch (InvocationTargetException e) { throw ProxyClientConnection.rethrow1 (e); } } public void close () throws IOException { try { connection_.callMethod (pxId_, "close"); } catch (InvocationTargetException e) { throw ProxyClientConnection.rethrow1 (e); } } protected void finalize() throws Throwable { connection_.callFinalize (pxId_); super.finalize(); } // Implementation of ProxyFactoryImpl interface. // This method gets called by ProxyClientConnection.callFactoryMethod(). public void initialize (long proxyId, ProxyClientConnection connection) { pxId_ = proxyId; connection_ = connection; } public void mark (int readLimit) { try { connection_.callMethod (pxId_, "mark", new Class[] { Integer.TYPE }, new Object[] { new Integer (readLimit) }); } catch (InvocationTargetException e) { throw ProxyClientConnection.rethrow (e); } } public boolean markSupported () { try { return connection_.callMethodReturnsBoolean (pxId_, "markSupported"); } catch (InvocationTargetException e) { throw ProxyClientConnection.rethrow (e); } } public int read () throws IOException { try { return connection_.callMethodReturnsInt (pxId_, "read"); } catch (InvocationTargetException e) { throw ProxyClientConnection.rethrow1 (e); } } public int read (byte[] data) throws IOException { return read (data, 0, data.length); } private static final boolean[] ARGS_TO_RETURN = new boolean[] {true, false, false}; public int read (byte[] data, int start, int length) throws IOException { try { ProxyReturnValue rv = connection_.callMethod (pxId_, "read", new Class[] { byte[].class, Integer.TYPE, Integer.TYPE }, new Object[] { data, new Integer (start), new Integer (length) }, ARGS_TO_RETURN, false ); byte [] returnDataBuffer = (byte[])rv.getArgument(0); for (int i=0; i





© 2015 - 2024 Weber Informatics LLC | Privacy Policy