|
|
- /*
- * Node.h
- *
- * Created on: 10.01.2017
- * Author: piotrek
- */
-
- #ifndef NODE_H_
- #define NODE_H_
-
- #include "common.h"
- #include "Packet.h"
-
- typedef struct {
- string ip;
- string mask;
- string gatewayIp;
- } NetConf;
-
- class Node
- {
- protected:
- queue<Packet>rcvBuffer; // kolejka z pakietami do przetworzenia
- vector<Node*> connectedNodes; // referencje do węzłów, z którymi jest podłączony
- NetConf netConf; // konfiguracja sieciowa
- string hostname; // nazwa węzła
- Node * findConnection(string ip);
- Packet recv();
- public:
- Node();
- Node(string hostname);
- Node(string hostname, string ip, string mask);
- Node(string hostname, string ip, string mask, string gatewayIp);
- virtual ~Node();
- bool connectNode(Node *node, bool firstConnected = false);
-
- bool send(Packet packet);
- void putPacket(Packet packet);
-
- // settery
- void setHostname(string hostname);
- void setIp(string ip);
- void setMask(string mask);
- void setGatewayIp(string gatewayIp);
-
- // gettery
- string getHostname();
- string getIp();
- string getMask();
- string getGatewayIp();
-
- virtual void onRecv(); // wirtualna metoda na odbiór i dalszą akcję
- };
-
- #endif /* NODE_H_ */
|