From 65b42fd64613a5d5e0a41afe05a2ee43fad70dce Mon Sep 17 00:00:00 2001 From: PioDer Date: Tue, 10 Jan 2017 22:24:53 +0100 Subject: [PATCH] poprawka laczenia + test polaczenia miedzy wezlami --- Main.cpp | 12 ++++++++++++ Node.cpp | 18 +++++++++++------- Node.h | 2 +- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Main.cpp b/Main.cpp index b06f1cb..f4fb644 100644 --- a/Main.cpp +++ b/Main.cpp @@ -6,8 +6,20 @@ */ #include "common.h" +#include "Node.h" int main(int argc, char *argv[]) { + cout << "Obiekt PC1" << endl; + Node pc1; + + cout << "Obiekt PC2" << endl; + Node pc2; + + cout << "Lacze PC1 z PC2" << endl; + cout << pc1.connectNode(&pc2) << endl; + + cout << "Lacze PC1 z PC2 (ponownie)" << endl; + cout << pc1.connectNode(&pc2) << endl; return 0; } diff --git a/Node.cpp b/Node.cpp index d2425a7..893d592 100644 --- a/Node.cpp +++ b/Node.cpp @@ -22,17 +22,21 @@ Node::~Node() * funkcja symuluje typową sytuację: mamy kartę sieciową, a funkcja connectNode jest podłączeniem wtyczki * z jednej strony */ -bool Node::connectNode(Node *node) +bool Node::connectNode(Node *node, bool firstConnected) { - vector::iterator it = this->connectedNodes.begin(); - for (; it != this->connectedNodes.end(); ++it) //sprawdzamy, czy połączenia już przypadkiem nie ma + if (!firstConnected) { - if (*it == node) - return false; + vector::iterator it = this->connectedNodes.begin(); + for (; it != this->connectedNodes.end(); ++it) //sprawdzamy, czy połączenia już przypadkiem nie ma + { + if (*it == node) + return false; + } } - this->connectedNodes.push_back(node); // podłączamy drugi węzeł - node->connectNode(this); // podłączamy drugą stronę + + if (!firstConnected) + node->connectNode(this, true); // to samo w drugą stronę return true; } diff --git a/Node.h b/Node.h index c73c1c4..0d56618 100644 --- a/Node.h +++ b/Node.h @@ -25,7 +25,7 @@ class Node public: Node(); virtual ~Node(); - bool connectNode(Node *node); + bool connectNode(Node *node, bool firstConnected = false); void send(Packet packet); Packet recv();