Cleaner examples

- Use ${CXX} instead of explicit clang in the Makefile.
- More explanations.
- Use socat's fork option instead of a bash loop.
- Adds a run_* script for each example.
- Remove the useless "sleep" option in service2.
This commit is contained in:
Johann Dreo 2021-08-05 10:08:49 +02:00
commit f74f89734c
9 changed files with 89 additions and 26 deletions

View file

@ -1,41 +0,0 @@
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <algorithm>
#include <thread>
std::string strip(std::string s)
{
s.erase(std::find_if( s.rbegin(), s.rend(),
[](int ch) { return !std::isspace(ch); }
).base(), s.end());
return s;
}
int main(int argc, char** argv)
{
std::clog << "Start server" << std::endl;
while(true) {
// Blocking call on named pipes.
std::ifstream ifs(argv[1]);
std::stringstream datas;
datas << ifs.rdbuf();
ifs.close();
std::string data = strip(datas.str());
std::ofstream ofs(argv[2]);
std::clog << "Received: <" << data << ">" << std::endl;
ofs << data << std::endl;
ofs.close();
if(data == "exit") {
break;
}
}
std::clog << "Stop server" << std::endl;
}