Get desktop application:
View/edit binary Protocol Buffers messages
Compresison algorithm, Offset of bit mask.
Used in:
Bit mask.
Applicable if `method_type` is `METHOD_TYPE_STREAM`. FIXME(2020/06/02, luobogao): Does not make much sense, we might want to remove it sometime later.
After serialization, both "no-payload" and empty message are 0 byte, so we need this flag to differentiate between them.
Method type expected by the sender. This can be inferred from `method_name` by the receiver. However, by providing this by the sender, on receiver side we can dispatch the message earlier without having to look into the method's descriptor, so as not to block processing of other messages.
Used in:
Used for matching request / response if the connection is multiplexed.
Bitwise or of `MessageFlags`. Protocol Buffers' enumeration does not allow bitmask, unfornatunately.
Message body used compression algorithm.
If set, attachment will also be compressed by the same compression algorithm as the message body.
Don't use `oneof` here, it does not get along well with object pooling. Protocol Buffer's own `Arena` is not a viable way either, as it cannot optimize allocation of `std::string`s. Note that this definition is wire-format compatible with `oneof` (given that at most one of them is present.)
Used in:
`MethodDescriptor::full_name()`.
For logging purpose.
Relative time. In milliseconds.
Opaque, provider-serialized span context. @sa: flare::tracing::TracingOpsProvider::Inject(...)
Bitwise or of `CompressionAlgorithms`, representing acceptable compression algorithms.
Used in:
@sa: `Status`.
If set, the receiver should report the trace (if distributed tracing is enabled) corresponding to this RPC. What's more, the flag should be propagated backwards further.
Only responses are stored. We (`RpcChannel`) don't care about requests.
Only requests are stored.
KEEP IN SYNC WITH `common/rpc/rpc_error_code.proto`
Status codes here are business independent.
Mostly not used by Flare.
Why do we have this?
Used by both framework.
Was `STATUS_GET_ROUTE_EMPTY`.
Was `STATUS_UNKNOWN`
Defined solely by Flare.
Values greater than 1000 (not 100) are reserved for end user's use.