proxygen
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
FixedLengthFrameDecoder.h
Go to the documentation of this file.
1
/*
2
* Copyright 2017-present Facebook, Inc.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#pragma once
18
19
#include <
wangle/codec/ByteToMessageDecoder.h
>
20
21
namespace
wangle
{
22
40
class
FixedLengthFrameDecoder
:
public
ByteToByteDecoder
{
41
public
:
42
explicit
FixedLengthFrameDecoder
(
size_t
length) :
length_
(length) {}
43
44
bool
decode
(
Context
*,
45
folly::IOBufQueue
& q,
46
std::unique_ptr<folly::IOBuf>& result,
47
size_t
& needed)
override
{
48
if
(q.
chainLength
() <
length_
) {
49
needed =
length_
- q.
chainLength
();
50
return
false
;
51
}
52
53
result = q.
split
(
length_
);
54
return
true
;
55
}
56
57
private
:
58
size_t
length_
;
59
};
60
61
}
// namespace wangle
folly::IOBufQueue::split
std::unique_ptr< folly::IOBuf > split(size_t n)
Definition:
IOBufQueue.h:420
folly::IOBufQueue::chainLength
size_t chainLength() const
Definition:
IOBufQueue.h:492
wangle::FixedLengthFrameDecoder::decode
bool decode(Context *, folly::IOBufQueue &q, std::unique_ptr< folly::IOBuf > &result, size_t &needed) override
Definition:
FixedLengthFrameDecoder.h:44
wangle
Definition:
Acceptor.cpp:49
wangle::ByteToMessageDecoder::Context
InboundHandler< folly::IOBufQueue &, M >::Context Context
Definition:
ByteToMessageDecoder.h:46
wangle::ByteToMessageDecoder
Definition:
ByteToMessageDecoder.h:44
folly::IOBufQueue
Definition:
IOBufQueue.h:35
ByteToMessageDecoder.h
wangle::FixedLengthFrameDecoder::length_
size_t length_
Definition:
FixedLengthFrameDecoder.h:58
wangle::FixedLengthFrameDecoder::FixedLengthFrameDecoder
FixedLengthFrameDecoder(size_t length)
Definition:
FixedLengthFrameDecoder.h:42
wangle::FixedLengthFrameDecoder
Definition:
FixedLengthFrameDecoder.h:40
proxygen
wangle
wangle
codec
FixedLengthFrameDecoder.h
Generated by
1.8.11