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:
parent
8bd46d2450
commit
f74f89734c
9 changed files with 89 additions and 26 deletions
41
service.cpp
41
service.cpp
|
|
@ -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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue