3 #include <samchon/protocol/IServer.hpp> 4 #include <samchon/protocol/IClient.hpp> 11 #include <samchon/ByteArray.hpp> 12 #include <samchon/protocol/Invoke.hpp> 18 namespace invoke_binary
25 std::string extension;
32 std::ifstream file(path.str(), std::ios::in | std::ios::binary);
33 file.unsetf(std::ios::skipws);
35 std::istream_iterator<unsigned char> begin(file), end;
37 data.assign(begin, end);
41 path = path.substr(path.rfind(
"/") + 1);
42 name = path.between(
"",
".");
43 extension = path.between(
".");
46 auto toInvoke() const ->
std::shared_ptr<protocol::Invoke>
49 return std::make_shared<protocol::Invoke>(
"saveFile", name, extension, data);
54 :
public protocol::IServer,
55 public protocol::IClient
58 typedef protocol::IServer super;
60 std::vector<File> fileArray;
69 File(
"D:/cpp_class_diagram.pdf"),
70 File(
"D:/entity_relationship_diagram.pdf"),
71 File(
"D:/js_class_diagram.pdf"),
72 File(
"D:/sequence_diagram.pdf")
77 virtual auto PORT() const ->
int override 81 virtual void addClient(protocol::Socket *socket)
83 std::cout <<
"A client has connected." << std::endl;
85 this->socket = socket;
90 virtual void sendData(std::shared_ptr<protocol::Invoke> invoke)
93 std::this_thread::sleep_for(std::chrono::milliseconds(100));
95 virtual void replyData(std::shared_ptr<protocol::Invoke> invoke)
97 std::cout << invoke->toXML()->toString() << std::endl;
98 if (invoke->getListener() !=
"getFile")
101 for (
size_t i = 0; i < fileArray.size(); i++)
102 this->sendData(fileArray[i].toInvoke());
virtual void sendData(std::shared_ptr< Invoke >)
Sends message to a related system.
Top level namespace of products built from samchon.