| %% Licensed to the Apache Software Foundation (ASF) under one |
| %% or more contributor license agreements. See the NOTICE file |
| %% distributed with this work for additional information |
| %% regarding copyright ownership. The ASF licenses this file |
| %% to you under the Apache License, Version 2.0 (the |
| %% "License"); you may not use this file except in compliance |
| %% with the License. You may obtain a copy of the License at |
| |
| %% http://www.apache.org/licenses/LICENSE-2.0 |
| |
| %% Unless required by applicable law or agreed to in writing, |
| %% software distributed under the License is distributed on an |
| %% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| %% KIND, either express or implied. See the License for the |
| %% specific language governing permissions and limitations |
| %% under the License. |
| |
| graph LR |
| client((Client))-->c1{{Send #60;want_data#gt; Msg}} |
| subgraph meta [Meta Message] |
| direction LR |
| m1[/Msg Type #40;byte 0#41;<br/>Seq Num #40;bytes 1-5#41;/]-- type 1 -->m2[[Process IPC Header]] |
| m2-- IPC has body -->m3[Get Corresponding<br/>Tagged Msg] |
| m2-- Schema Msg -->m4[/Store Schema/] |
| m1-- type 0 -->e[Indicate End of Stream] |
| end |
| subgraph data [Data Stream] |
| direction LR |
| d1[Request Msg<br/>for Seq Num]-->d2{Most Significant<br/>Byte} |
| d2-- 0 -->d3[Construct from<br/>Metadata and Body] |
| d2-- 1 -->d4[Get shared/remote<br/>buffers] |
| d4 -->d5[Construct from<br/>Metadata and buffers] |
| d3 & d5 -->e2[Output Batch] |
| end |
| |
| client -- recv untagged msg --> meta |
| client -- get tagged msg --> data |