Symulacja NAT na przedmiot Symulacje Komputerowe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

55 lines
1.1 KiB

/*
* 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_ */