]> AND Private Git Repository - Cipher_code.git/blobdiff - IDA/ida_gf65.cpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
update of one round
[Cipher_code.git] / IDA / ida_gf65.cpp
index 09c4162daeb0c6285cf036edab2c40da2adf692f..2a914c591da2dd497140b339a1bfe2193dd9755a 100644 (file)
 #include <string.h>
 #include <algorithm>    // std::random_shuffle
 #include <vector>       // std::vector
 #include <string.h>
 #include <algorithm>    // std::random_shuffle
 #include <vector>       // std::vector
+#include <unistd.h>
+#include <thread>
+
+
 extern "C" {
   #include "jerasure.h"
 }
 extern "C" {
   #include "jerasure.h"
 }
@@ -20,7 +24,7 @@ typedef unsigned long mylong;
 
 using namespace std;
 
 
 using namespace std;
 
-string cloud[5]={"dropboxida1","googleida1","megaida1","onedriveida1","pcloudida1"};
+string cloud[5]={"dropboxida1","googleida1","onedriveida2","onedriveida1","pcloudida1"};
 
 
 void display(mylong *mat, int r, int c) {
 
 
 void display(mylong *mat, int r, int c) {
@@ -441,18 +445,27 @@ int main(int argc, char **argv)
 
 //  display(matC,t,t);
 
 
 //  display(matC,t,t);
 
-  
+  thread th[n];
   //Save trunks
   for(int i=0;i<n;i++) {
     stringstream ss;
     ss <<"lena_"<<i<<".png";
     string str = ss.str();
     saveFile((uint8_t*)&matC[i*len], str.c_str(),len*sizeof(mylong));
   //Save trunks
   for(int i=0;i<n;i++) {
     stringstream ss;
     ss <<"lena_"<<i<<".png";
     string str = ss.str();
     saveFile((uint8_t*)&matC[i*len], str.c_str(),len*sizeof(mylong));
-    sendChunk( str,i);
+//    sendChunk( str,i);
+    th[i] = thread(sendChunk,str, i);
   }
 
   }
 
+  for(int i=0;i<n;i++) {
+    th[i].join();
+  }
   
   
+/*  cout<<"sleep begin"<<endl;
+  sleep(2);
+  cout<<"sleep end"<<endl;
+*/
 
 
+  
   mylong *matCs = malloc(sizeof(mylong)*t*len);
   mylong *matGs = malloc(sizeof(mylong)*t*t);
 
   mylong *matCs = malloc(sizeof(mylong)*t*len);
   mylong *matGs = malloc(sizeof(mylong)*t*t);
 
@@ -469,9 +482,10 @@ int main(int argc, char **argv)
 
   std::cout << "random chunk" << std::endl;  
   int ind=0;
 
   std::cout << "random chunk" << std::endl;  
   int ind=0;
+
+  
+  
   for(int ii=0;ii<t;ii++) {
   for(int ii=0;ii<t;ii++) {
-//  for(int i=n-1;i>=t;i--) {
-//  for(int i=0;i<n;i+=2) {
 
     auto i=myvector[ii];
     std::cout << myvector[i] << " ";
 
     auto i=myvector[ii];
     std::cout << myvector[i] << " ";
@@ -481,7 +495,23 @@ int main(int argc, char **argv)
     ss <<"lena_"<<i<<".png";
     string str = ss.str();
 
     ss <<"lena_"<<i<<".png";
     string str = ss.str();
 
-    retrieveChunk(str,i);
+//    retrieveChunk(str,i);
+    th[ii] = thread(retrieveChunk,str, i);
+  }
+
+  
+  ind=0;
+
+  for(int ii=0;ii<t;ii++) {
+
+    auto i=myvector[ii];
+    std::cout << myvector[i] << " ";
+
+
+    stringstream ss;
+    ss <<"lena_"<<i<<".png";
+    string str = ss.str();
+    th[ii].join();    
     readFile((uint8_t*)&matCs[ind*len], str.c_str(),len*sizeof(mylong));
 
 //    display(&matCs[ind*len],1,1);
     readFile((uint8_t*)&matCs[ind*len], str.c_str(),len*sizeof(mylong));
 
 //    display(&matCs[ind*len],1,1);