grpc
third_party
protobuf
src
google
protobuf
testing
protobuf/src/google/protobuf/testing/zcgzip.cc
Go to the documentation of this file.
1
// Protocol Buffers - Google's data interchange format
2
// Copyright 2009 Google Inc. All rights reserved.
3
// https://developers.google.com/protocol-buffers/
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are
7
// met:
8
//
9
// * Redistributions of source code must retain the above copyright
10
// notice, this list of conditions and the following disclaimer.
11
// * Redistributions in binary form must reproduce the above
12
// copyright notice, this list of conditions and the following disclaimer
13
// in the documentation and/or other materials provided with the
14
// distribution.
15
// * Neither the name of Google Inc. nor the names of its
16
// contributors may be used to endorse or promote products derived from
17
// this software without specific prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31
// Author: brianolson@google.com (Brian Olson)
32
// Based on original Protocol Buffers design by
33
// Sanjay Ghemawat, Jeff Dean, and others.
34
//
35
// Test program to verify that GzipOutputStream is compatible with command line
36
// gzip or java.util.zip.GzipOutputStream
37
//
38
// Reads data on standard input and writes compressed gzip stream to standard
39
// output.
40
41
#include <fcntl.h>
42
#include <stdio.h>
43
#include <stdlib.h>
44
#include <unistd.h>
45
46
#ifdef _WIN32
47
#ifndef STDIN_FILENO
48
#define STDIN_FILENO 0
49
#endif
50
#ifndef STDOUT_FILENO
51
#define STDOUT_FILENO 1
52
#endif
53
#endif
54
55
#include <google/protobuf/io/gzip_stream.h>
56
#include <google/protobuf/io/zero_copy_stream_impl.h>
57
58
using
google::protobuf::io::FileOutputStream
;
59
using
google::protobuf::io::GzipOutputStream
;
60
61
int
main
(
int
argc,
const
char
** argv) {
62
FileOutputStream
fout(STDOUT_FILENO);
63
GzipOutputStream
out
(&fout);
64
int
readlen;
65
66
while
(
true
) {
67
void
* outptr;
68
int
outlen;
69
bool
ok
;
70
do
{
71
ok
=
out
.Next(&outptr, &outlen);
72
if
(!
ok
) {
73
break
;
74
}
75
}
while
(outlen <= 0);
76
readlen =
read
(STDIN_FILENO, outptr, outlen);
77
if
(readlen <= 0) {
78
out
.BackUp(outlen);
79
break
;
80
}
81
if
(readlen < outlen) {
82
out
.BackUp(outlen - readlen);
83
}
84
}
85
86
return
0;
87
}
gen_build_yaml.out
dictionary out
Definition:
src/benchmark/gen_build_yaml.py:24
main
int main(int argc, const char **argv)
Definition:
protobuf/src/google/protobuf/testing/zcgzip.cc:61
google::protobuf::io::FileOutputStream
Definition:
bloaty/third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h:142
read
int read(izstream &zs, T *x, Items items)
Definition:
bloaty/third_party/zlib/contrib/iostream2/zstream.h:115
ok
bool ok
Definition:
async_end2end_test.cc:197
google::protobuf::io::GzipOutputStream
Definition:
bloaty/third_party/protobuf/src/google/protobuf/io/gzip_stream.h:106
grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:00