void printInfos(){ //vector<string> datasetIds; //SimkaMinCommons::readIds(_inputFilename, datasetIds); u_int32_t seed; u_int8_t kmerSize; SimkaMinCommons::getKmerInfos(_inputFilename, kmerSize, _sketchSize, seed, _nbDatasets); cout << "Sketch info: " << _inputFilename << endl; cout << endl; cout << "k-mer size : " << (u_int32_t) kmerSize << endl; cout << "Sketch size : " << _sketchSize << endl; cout << "Seed : " << seed << endl; cout << endl; cout << "Nb Datasets: " << _nbDatasets << endl; printIds(); cout << endl; }
result_type Peer::registerWithCoordinator() { result_type res; coordinatorFd = connectToPeer(coordinatorAddr, true); res = send_type_(coordinatorFd, REGISTER); QUIT_IF_UNSUCCESSFUL(res); res = recv_(coordinatorFd, 0, ownId); // receive registration ID QUIT_IF_UNSUCCESSFUL(res); std::cout << "ID: " << this->ownId << std::endl; setNewPeerStructures(coordinatorFd, 0, DESCRIPTOR_SOCK); // the coordinator has always ID = 0 res = recv_(coordinatorFd, 0, nPeers); QUIT_IF_UNSUCCESSFUL(res); this->usingFreeformLayout = (nPeers == 0); if (!this->usingFreeformLayout) { // receive all peers that are upstream or downstream of this peer_id * prev = NULL, * next = NULL; uint prevSize = 0, nextSize = 0; res = recv_new_(coordinatorFd, 0, prev, prevSize); QUIT_IF_UNSUCCESSFUL(res); res = recv_new_(coordinatorFd, 0, next, nextSize); QUIT_IF_UNSUCCESSFUL(res); printIds(prev, prevSize, "previous"); printIds(next, nextSize, "next"); this->prevPeers.assign(prev+0, prev+prevSize); this->nextPeers.assign(next+0, next+nextSize); free(prev); free(next); } // receive which next/prev IDs are already registered peer_id * connectable_array; uint connectableSize = 0; res = recv_new_(coordinatorFd, 0, connectable_array, connectableSize); QUIT_IF_UNSUCCESSFUL(res); connectable.insert(connectable_array+0, connectable_array+connectableSize); if (this->usingFreeformLayout) { this->nextPeers.assign(connectable.begin(), connectable.end()); // when there's no layout, all connectable peers are considered to be "next" } free(connectable_array); TEST() { std::cout << "connectable peers:" << std::endl; for (peer_id id : connectable) std::cout << "id: " << id << std::endl; std::cout << "---------------------" << std::endl; } return res; }