Explorar o código

fix minor listing issues (add chunk counting)

Missingmew %!s(int64=4) %!d(string=hai) anos
pai
achega
116729a28c
Modificáronse 3 ficheiros con 7 adicións e 4 borrados
  1. 1 1
      cli/include/fileman.h
  2. 3 1
      cli/src/cmdman.cpp
  3. 3 2
      cli/src/fileman.cpp

+ 1 - 1
cli/include/fileman.h

@@ -51,7 +51,7 @@ public:
 	
 	std::string readBase64();
 	void writeBase64(std::string data);
-	void putListData(std::string name);
+	void putListData(std::vector<std::string> names);
 	std::vector<std::string> getListData();
 	
 	int getPutChunks();

+ 3 - 1
cli/src/cmdman.cpp

@@ -388,6 +388,7 @@ CmdMan::CmdRet CmdMan::handleList(Json::Value root) {
 CmdMan::CmdRet CmdMan::handleListdata(Json::Value root) {
 	CmdRet retval;
 	std::cerr << __PRETTY_FUNCTION__ << " begin" << std::endl;
+	vector<string> toadd;
 	
 	// the passed number of recieved chunks should equal the number of sent chunks
 	if(root["remaining"].asInt() != fileman.getListRemainingChunks()) {
@@ -399,7 +400,8 @@ CmdMan::CmdRet CmdMan::handleListdata(Json::Value root) {
 		retval.msg = "File listing cancelled: Server reports: " + root["error"].asString();
 		fileman.cancelList();
 	} else {
-		for(Json::Value i : root["names"]) fileman.putListData(i.asString());
+		for(Json::Value i : root["names"]) toadd.push_back(i.asString());
+		fileman.putListData(toadd);
 		// loaded successfully
 		if(!fileman.getListRemainingChunks()) {
 			// everything sent

+ 3 - 2
cli/src/fileman.cpp

@@ -97,8 +97,9 @@ void FileMan::writeBase64(std::string data) {
 	writeGet(base64::decodeVector(data));
 }
 
-void FileMan::putListData(std::string name) {
-	listdata.push_back(name);
+void FileMan::putListData(std::vector<std::string> names) {
+	listdata.insert(listdata.end(), names.begin(), names.end());
+	listchunksRemaining--;
 }
 
 std::vector<std::string> FileMan::getListData() {