named-pipes-services/service1.cpp
nojhan 016852e281 adds python implementations
- more README
- fix some C++ code along the way
2022-08-31 00:37:17 +02:00

41 lines
883 B
C++

#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::clog << "Received: <" << data << ">" << std::endl;
std::ofstream ofs(argv[2]);
ofs << data << std::endl;
ofs.close();
if(data == "exit") {
break;
}
}
std::clog << "Stop server" << std::endl;
}