SNode.C
Loading...
Searching...
No Matches
testpipe.cpp
Go to the documentation of this file.
1#include "core/SNodeC.h"
2#include "core/pipe/Pipe.h"
3#include "core/pipe/PipeSink.h"
4#include "core/pipe/PipeSource.h"
5
6#ifndef DOXYGEN_SHOULD_SKIP_THIS
7
8#include "log/Logger.h"
9
10#include <cstddef>
11#include <functional>
12#include <string>
13
14#endif /* DOXYGEN_SHOULD_SKIP_THIS */
15
16int main(int argc, char* argv[]) {
17 core::SNodeC::init(argc, argv);
18
19 const core::pipe::Pipe pipe(
20 []([[maybe_unused]] core::pipe::PipeSource& pipeSource, [[maybe_unused]] core::pipe::PipeSink& pipeSink) {
21 pipeSink.setOnData([&pipeSource](const char* chunk, std::size_t chunkLen) {
22 const std::string string(chunk, chunkLen);
23 VLOG(1) << "Pipe Data: " << string;
24 pipeSource.send(chunk, chunkLen);
25 // pipeSink.disable();
26 // pipeSource.disable();
27 });
28
29 pipeSink.setOnEof([]() {
30 VLOG(1) << "Pipe EOF";
31 });
32
33 pipeSink.setOnError([]([[maybe_unused]] int errnum) {
34 VLOG(1) << "PipeSink";
35 });
36
37 pipeSource.setOnError([]([[maybe_unused]] int errnum) {
38 VLOG(1) << "PipeSource";
39 });
40
41 pipeSource.send("Hello World!");
42 },
43 []([[maybe_unused]] int errnum) {
44 PLOG(ERROR) << "Pipe not created";
45 });
46
47 return core::SNodeC::start();
48}
int main(int argc, char *argv[])