Advertisement
touhid_xml

NATIVE MESSAGING HOST

Jan 29th, 2016
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. int main(){
  5.     std::string oneLine = "";
  6.  
  7.     while (1){
  8.         unsigned int length = 0;
  9.  
  10.         //read the first four bytes (=> Length)
  11.         /*for (int i = 0; i < 4; i++)
  12.         {
  13.             int read_char = getchar();
  14.             length += read_char * (int) pow(2.0, i*8);
  15.             std::string s = std::to_string((long long)read_char) + "\n";
  16.             fwrite(s.c_str(), sizeof(char), s.size(), f);
  17.             fflush(f);
  18.         }*/
  19.  
  20.         //Neat way!
  21.         for (int i = 0; i < 4; i++)
  22.         {
  23.             unsigned int read_char = getchar();
  24.             length = length | (read_char << i*8);
  25.         }
  26.  
  27.         //read the json-message
  28.         std::string msg = "";
  29.         for (int i = 0; i < length; i++)
  30.         {
  31.             msg += getchar();
  32.         }
  33.  
  34.         std::string message = "{\"text\":\"This is a response message\"}";
  35.         // Collect the length of the message
  36.         unsigned int len = message.length();
  37.  
  38.         // Now we can output our message
  39.         if (msg == "{\"text\":\"#STOP#\"}"){
  40.             message = "{\"text\":\"EXITING...\"}";
  41.             len = message.length();
  42.  
  43.             std::cout   << char(len>>0)
  44.                         << char(len>>8)
  45.                         << char(len>>16)
  46.                         << char(len>>24);
  47.  
  48.             std::cout << message;
  49.             break;
  50.         }
  51.  
  52.         len = length;
  53.         std::cout   << char(len>>0)
  54.                     << char(len>>8)
  55.                     << char(len>>16)
  56.                     << char(len>>24);
  57.  
  58.         std::cout << msg << std::flush;
  59.     }
  60.  
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement