| /* |
| * Copyright (C) 2011, Google Inc. and others |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Distribution License v. 1.0 which is available at |
| * https://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| package org.eclipse.jgit.util.io; |
| |
| import java.io.IOException; |
| import java.io.OutputStream; |
| |
| /** |
| * Counts the number of bytes written. |
| */ |
| public class CountingOutputStream extends OutputStream { |
| private final OutputStream out; |
| private long cnt; |
| |
| /** |
| * Initialize a new counting stream. |
| * |
| * @param out |
| * stream to output all writes to. |
| */ |
| public CountingOutputStream(OutputStream out) { |
| this.out = out; |
| } |
| |
| /** |
| * Get current number of bytes written. |
| * |
| * @return current number of bytes written. |
| */ |
| public long getCount() { |
| return cnt; |
| } |
| |
| /** {@inheritDoc} */ |
| @Override |
| public void write(int val) throws IOException { |
| out.write(val); |
| cnt++; |
| } |
| |
| /** {@inheritDoc} */ |
| @Override |
| public void write(byte[] buf, int off, int len) throws IOException { |
| out.write(buf, off, len); |
| cnt += len; |
| } |
| |
| /** {@inheritDoc} */ |
| @Override |
| public void flush() throws IOException { |
| out.flush(); |
| } |
| |
| /** {@inheritDoc} */ |
| @Override |
| public void close() throws IOException { |
| out.close(); |
| } |
| } |