From 602442ecedf17800cddfdae188b05b40345cb011 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期五, 12 六月 2020 12:08:46 +0800
Subject: [PATCH] version

---
 service/request_handler.c |  127 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 118 insertions(+), 9 deletions(-)

diff --git a/service/request_handler.c b/service/request_handler.c
index 592bcd7..8bbd910 100644
--- a/service/request_handler.c
+++ b/service/request_handler.c
@@ -14,8 +14,10 @@
 }
  
 int handleLogin(nng_socket sock, Json::Value request) {
-std::cout << "accepted login request" << std::endl;
-  int rv, code;
+std::cout << "===accepted login request" << std::endl;
+  int rv;
+  char rmsg[MAXLINE];
+  strcpy(rmsg, "success");
   // char *buf;
   Netdisk *netdisk = NULL;
 
@@ -41,21 +43,24 @@
     if(netdisk != NULL) {
       userDeviceMap.insert({loginInfo.loginUUID, netdisk});
     } else {
-      err_msg(0, "鏃犳硶璇嗗埆鐨勮澶囩被鍨嬶細 %s", loginInfo.deviceType.c_str());
+
+      //rvout << "鏃犳硶璇嗗埆鐨勮澶囩被鍨嬶細" << loginInfo.deviceType.c_str();
+      snprintf(rmsg, MAXLINE, "鏃犳硶璇嗗埆鐨勮澶囩被鍨嬶細 %s", loginInfo.deviceType.c_str());
     }
   }
 
-  code = netdisk->login(loginInfo);
-  if (code == 0) {
+  rv = netdisk->login(loginInfo);
+  if (rv == 0) {
     loginStore.saveLoginInfo(loginInfo);
-    std::cout << "璧峰閫氶亾:" << netdisk->getDeviceInfo().startChannel << ", 鏈�澶ч�氶亾鍙凤細" << netdisk->getDeviceInfo().maxChannels << std::endl;
+   // std::cout << "璧峰閫氶亾:" << netdisk->getDeviceInfo().startChannel << ", 鏈�澶ч�氶亾鍙凤細" << netdisk->getDeviceInfo().maxChannels << std::endl;
   }
  
 
   Json::Value response;
   Json::Value payload;
   payload["loginUUID"] = loginInfo.loginUUID;
-  response["code"] = code;
+  response["code"] = rv;
+  response["msg"] = rmsg;
   response["payload"]  = payload;
   const std::string str = response.toStyledString();
   // nng鍐呴儴浼氶噴鏀綽uf
@@ -68,11 +73,116 @@
   return 0;
 }
 
+int handleLogout(nng_socket sock, Json::Value request) {
+std::cout << "===accepted logout request" << std::endl;
+  int rv;
+  char rmsg[MAXLINE];
+  strcpy(rmsg, "success");
+  // char *buf;
+  Netdisk *netdisk = NULL;
+
+  Json::Value arguments = request["arguments"];
+  std::string loginUUID=arguments["loginUUID"].asString();
+  Netdisk_LoginInfo loginInfo = loginStore.getLoginInfo(loginUUID);
+
+  std::map<std::string, Netdisk *>::iterator userDeviceIter = userDeviceMap.find(loginUUID);
+  if( userDeviceIter != userDeviceMap.end() ) {
+     netdisk = userDeviceIter->second;
+  }
+
+  if (netdisk == NULL) {
+    netdisk = NetdiskFacotory::create(loginInfo.deviceType);
+    if(netdisk != NULL) {
+      userDeviceMap.insert({loginInfo.loginUUID, netdisk});
+    } else {
+
+      //rvout << "鏃犳硶璇嗗埆鐨勮澶囩被鍨嬶細" << loginInfo.deviceType.c_str();
+      snprintf(rmsg, MAXLINE, "鏃犳硶璇嗗埆鐨勮澶囩被鍨嬶細 %s", loginInfo.deviceType.c_str());
+    }
+  }
+
+  rv = netdisk->logout();
+  
+  Json::Value response;
+  response["code"] = rv;
+  response["msg"] = rmsg;
+  Json::Value payload;
+  payload["loginUUID"] = loginInfo.loginUUID;
+  response["payload"]  = payload;
+  const std::string str = response.toStyledString();
+  // nng鍐呴儴浼氶噴鏀綽uf
+  rv = nng_send(sock, strdup(str.c_str()), str.length(), NNG_FLAG_ALLOC);
+  if (rv != 0) {
+    fatal("nng_send", rv);
+    return rv;
+  }
+  return 0;
+}
+
+
+int handleGetDeviceInfo(nng_socket sock, Json::Value request) {
+std::cout << "===accepted getDeviceInfo request" << std::endl;
+  int rv;
+  char rmsg[MAXLINE];
+  strcpy(rmsg, "success");
+  // char *buf;
+  Netdisk *netdisk = NULL;
+  DeviceInfo deviceInfo;
+
+  Json::Value arguments = request["arguments"];
+  std::string loginUUID=arguments["loginUUID"].asString();
+
+  Netdisk_LoginInfo loginInfo = loginStore.getLoginInfo(loginUUID);
+
+  std::map<std::string, Netdisk *>::iterator userDeviceIter = userDeviceMap.find(loginUUID);
+  if( userDeviceIter != userDeviceMap.end() ) {
+     netdisk = userDeviceIter->second;
+  }
+
+  if (netdisk == NULL) {
+    netdisk = NetdiskFacotory::create(loginInfo.deviceType);
+    if(netdisk != NULL) {
+      userDeviceMap.insert({loginInfo.loginUUID, netdisk});
+    } else {
+
+      //rvout << "鏃犳硶璇嗗埆鐨勮澶囩被鍨嬶細" << loginInfo.deviceType.c_str();
+      snprintf(rmsg, MAXLINE, "鏃犳硶璇嗗埆鐨勮澶囩被鍨嬶細 %s", loginInfo.deviceType.c_str());
+    }
+  }
+
+  if ( (rv = netdisk->login(loginInfo)) != 0 ) {
+    snprintf(rmsg, MAXLINE, "璇烽噸鏂扮櫥褰�");
+  } else {
+  	deviceInfo = netdisk->getDeviceInfo();
+  }
+
+  Json::Value response;
+  response["code"] = rv;
+  response["msg"] = rmsg;
+  Json::Value payload;
+  payload["loginUUID"] = loginUUID;
+  Json::Value jsonDeviceInfo;
+  jsonDeviceInfo["startChannel"] = deviceInfo.startChannel;
+  jsonDeviceInfo["maxChannels"] = deviceInfo.maxChannels;
+  payload["deviceInfo"] = jsonDeviceInfo;
+  response["payload"]  = payload;
+  const std::string str = response.toStyledString();
+  // nng鍐呴儴浼氶噴鏀綽uf
+  rv = nng_send(sock, strdup(str.c_str()), str.length(), NNG_FLAG_ALLOC);
+  if (rv != 0) {
+    fatal("nng_send", rv);
+    return rv;
+  }
+  return 0;
+}
+
 
 
 int handleDownloadByTimeAsync(nng_socket sock, Json::Value request) {
 std::cout << "accepted handleDownloadByTime request" << std::endl;
   int rv;
+  char rmsg[MAXLINE];
+  strcpy(rmsg, "received");
   // char *buf;
   
   Json::Value arguments = request["arguments"];
@@ -103,6 +213,7 @@
   
   Json::Value response;
   response["code"] = 0;
+  response["msg"] = rmsg;
   std::string str = response.toStyledString();
   std::cout << str << std::endl;
   if ((rv = nng_send(sock, strdup(str.c_str()), str.length(), NNG_FLAG_ALLOC)) != 0) {
@@ -110,8 +221,6 @@
     return rv;
   }
   return 0;
-
-
 }
     
 int handleDownloadByTime(nng_socket sock, Json::Value request) {

--
Gitblit v1.8.0