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

  1. /*
  2. * Node.h
  3. *
  4. * Created on: 10.01.2017
  5. * Author: piotrek
  6. */
  7. #ifndef NODE_H_
  8. #define NODE_H_
  9. #include "common.h"
  10. #include "Packet.h"
  11. typedef struct {
  12. string ip;
  13. string mask;
  14. string gatewayIp;
  15. } NetConf;
  16. class Node
  17. {
  18. protected:
  19. queue<Packet>rcvBuffer; // kolejka z pakietami do przetworzenia
  20. vector<Node*> connectedNodes; // referencje do węzłów, z którymi jest podłączony
  21. NetConf netConf; // konfiguracja sieciowa
  22. string hostname; // nazwa węzła
  23. Node * findConnection(string ip);
  24. Packet recv();
  25. public:
  26. Node();
  27. Node(string hostname);
  28. Node(string hostname, string ip, string mask);
  29. Node(string hostname, string ip, string mask, string gatewayIp);
  30. virtual ~Node();
  31. bool connectNode(Node *node, bool firstConnected = false);
  32. bool send(Packet packet);
  33. void putPacket(Packet packet);
  34. // settery
  35. void setHostname(string hostname);
  36. void setIp(string ip);
  37. void setMask(string mask);
  38. void setGatewayIp(string gatewayIp);
  39. // gettery
  40. string getHostname();
  41. string getIp();
  42. string getMask();
  43. string getGatewayIp();
  44. virtual void onRecv(); // wirtualna metoda na odbiór i dalszą akcję
  45. };
  46. #endif /* NODE_H_ */