Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
Source Code for Connector/J 8.0.31 - Protocol Impl
Where to get the Java source code for Connector/J 8.0 Protocol Impl module?
✍: FYIcenter.com
Java source code files for Connector/J 8.0 Protocol Impl module are:
⏎ com/mysql/cj/protocol/x/CompressorStreamsFactory.java
/*
* Copyright (c) 2020, 2021, Oracle and/or its affiliates.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, version 2.0, as published by the
* Free Software Foundation.
*
* This program is also distributed with certain software (including but not
* limited to OpenSSL) that is licensed under separate terms, as designated in a
* particular file or component or in included license documentation. The
* authors of MySQL hereby grant you an additional permission to link the
* program and your derivative works with the separately licensed software that
* they have included with MySQL.
*
* Without limiting anything contained in the foregoing, this file, which is
* part of MySQL Connector/J, is also subject to the Universal FOSS Exception,
* version 1.0, a copy of which can be found at
* http://oss.oracle.com/licenses/universal-foss-exception.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License, version 2.0,
* for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
package com.mysql.cj.protocol.x;
import java.io.InputStream;
import java.io.OutputStream;
import com.mysql.cj.Messages;
import com.mysql.cj.util.Util;
/**
* Factory class for producing inflating and deflating-able {@link InputStream} and {@link OutputStream} instances for a selected compression algorithm.
*/
public class CompressorStreamsFactory {
private CompressionAlgorithm compressionAlgorithm;
private InputStream compressorInputStreamInstance = null;
private ContinuousInputStream underlyingInputStream = null;
private OutputStream compressorOutputStreamInstance = null;
private ReusableOutputStream underlyingOutputStream = null;
public CompressorStreamsFactory(CompressionAlgorithm algorithm) {
this.compressionAlgorithm = algorithm;
}
public CompressionMode getCompressionMode() {
return this.compressionAlgorithm.getCompressionMode();
}
public boolean areCompressedStreamsContinuous() {
return getCompressionMode() == CompressionMode.STREAM;
}
/**
* Creates an instance of an {@link InputStream} that wraps around the given {@link InputStream} and knows how to inflate data using the algorithm given in
* this class' constructor.
*
* If the compression algorithm operates in steam mode (continuous) then create and reuse one single instance of the compressor {@link InputStream}, else
* create a new instance every time.
*
* @param in
* the {@link InputStream} to use as source of the bytes to inflate.
* @return
* the new inflater {@link InputStream} wrapper instance.
*/
public InputStream getInputStreamInstance(InputStream in) {
InputStream underlyingIn = in;
if (areCompressedStreamsContinuous()) {
if (this.compressorInputStreamInstance != null) {
this.underlyingInputStream.addInputStream(underlyingIn);
return this.compressorInputStreamInstance;
}
this.underlyingInputStream = new ContinuousInputStream(underlyingIn);
underlyingIn = this.underlyingInputStream;
}
InputStream compressionIn = (InputStream) Util.getInstance(this.compressionAlgorithm.getInputStreamClass().getName(),
new Class<?>[] { InputStream.class }, new Object[] { underlyingIn }, null, Messages.getString("Protocol.Compression.IoFactory.0",
new Object[] { this.compressionAlgorithm.getInputStreamClass().getName(), this.compressionAlgorithm }));
if (areCompressedStreamsContinuous()) {
this.compressorInputStreamInstance = compressionIn;
}
return compressionIn;
}
/**
* Creates an instance of an {@link OutputStream} that wraps around the given {@link OutputStream} and knows how to deflate data using the algorithm given
* in this class' constructor.
*
* If the compression algorithm operates in steam mode (continuous) then create and reuse one single instance of the compressor {@link OutputStream}, else
* create a new instance every time.
*
* @param out
* the {@link OutputStream} to use as target of the bytes to deflate.
* @return
* the new deflater {@link OutputStream} wrapper instance.
*/
public OutputStream getOutputStreamInstance(OutputStream out) {
OutputStream underlyingOut = out;
if (areCompressedStreamsContinuous()) {
if (this.compressorOutputStreamInstance != null) {
this.underlyingOutputStream.setOutputStream(underlyingOut);
return this.compressorOutputStreamInstance;
}
this.underlyingOutputStream = new ReusableOutputStream(underlyingOut);
underlyingOut = this.underlyingOutputStream;
}
OutputStream compressionOut = (OutputStream) Util.getInstance(this.compressionAlgorithm.getOutputStreamClass().getName(),
new Class<?>[] { OutputStream.class }, new Object[] { underlyingOut }, null, Messages.getString("Protocol.Compression.IoFactory.1",
new Object[] { this.compressionAlgorithm.getOutputStreamClass().getName(), this.compressionAlgorithm }));
if (areCompressedStreamsContinuous()) {
compressionOut = new ContinuousOutputStream(compressionOut);
this.compressorOutputStreamInstance = compressionOut;
}
return compressionOut;
}
}
⏎ com/mysql/cj/protocol/x/CompressorStreamsFactory.java
Or download all of them as a single archive file:
File name: mysql-connector-java-protocol-impl-8.0.31.zip File size: 284191 bytes Release date: 2022-09-03 Download
⇒ Source Code for Connector/J 8.0.31 - User API
⇐ Source Code for Connector/J 8.0.31 - Core Impl
2023-05-31, ≈43🔥, 0💬
Popular Posts:
Apache ZooKeeper is an open-source server which enables highly reliable distributed coordination. Ap...
JDK 11 jdk.dynalink.jmod is the JMOD file for JDK 11 Dynamic Linking module. JDK 11 Dynamic Linking ...
JDK 11 java.compiler.jmod is the JMOD file for JDK 11 Compiler module. JDK 11 Compiler module compil...
JDK 17 jdk.jshell.jmod is the JMOD file for JDK 17 JShell tool, which can be invoked by the "jshell"...
jlGui is a music player for the Java platform. It is based on Java Sound 1.0 (i.e. JDK 1.3+). It sup...