]>
git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/thrift/lib/perl/lib/Thrift/BufferedTransport.pm
2 # Licensed to the Apache Software Foundation (ASF) under one
3 # or more contributor license agreements. See the NOTICE file
4 # distributed with this work for additional information
5 # regarding copyright ownership. The ASF licenses this file
6 # to you under the Apache License, Version 2.0 (the
7 # "License"); you may not use this file except in compliance
8 # with the License. You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing,
13 # software distributed under the License is distributed on an
14 # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 # KIND, either express or implied. See the License for the
16 # specific language governing permissions and limitations
25 use Thrift
::Exception
;
26 use Thrift
::Transport
;
28 package Thrift
::BufferedTransport
;
29 use base
('Thrift::Transport');
30 use version
0.77; our $VERSION = version-
>declare("$Thrift::VERSION");
34 my $classname = shift;
35 my $transport = shift;
36 my $rBufSize = shift || 512;
37 my $wBufSize = shift || 512;
40 transport
=> $transport,
41 rBufSize
=> $rBufSize,
42 wBufSize
=> $wBufSize,
47 return bless($self,$classname);
54 return $self->{transport
}->isOpen();
60 $self->{transport
}->open();
66 $self->{transport
}->close();
74 return $self->{transport
}->readAll($len);
83 # Methinks Perl is already buffering these for us
84 return $self->{transport
}->read($len);
92 $self->{wBuf
} .= $buf;
93 if (length($self->{wBuf
}) >= $self->{wBufSize
}) {
94 $self->{transport
}->write($self->{wBuf
});
103 if (length($self->{wBuf
}) > 0) {
104 $self->{transport
}->write($self->{wBuf
});
107 $self->{transport
}->flush();
112 # BufferedTransport factory creates buffered transport objects from transports
114 package Thrift
::BufferedTransportFactory
;
115 use version
0.77; our $VERSION = version-
>declare("$Thrift::VERSION");
118 my $classname = shift;
121 return bless($self,$classname);
125 # Build a buffered transport from the base transport
127 # @return Thrift::BufferedTransport transport
134 my $buffered = Thrift
::BufferedTransport-
>new($trans);