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.

52 lines
1.1 KiB

7 years ago
  1. /**
  2. * @file NATItem.h
  3. *
  4. * Created on: 10-01-2017
  5. * @author Piotr Dergun
  6. */
  7. #ifndef NATITEM_H_
  8. #define NATITEM_H_
  9. #include "common.h"
  10. class NATItem
  11. {
  12. /** IP węzła za NAT-em do którego ma trafić odpowiedź / z którego przyszło żądanie */
  13. string ip; //
  14. /** port węzła za NAT-em, do którego ma trafić odpowiedź */
  15. int port;
  16. /** czas, na jaki port w tablicy NAT pozostaje otwarty do ewentualnej odpowiedzi z zewnątrz */
  17. unsigned long timeout;
  18. public:
  19. NATItem();
  20. /**
  21. * sprawdza, czy port jest wolny (timeout == 0)
  22. */
  23. bool isFree();
  24. /**
  25. * zwiększa timeout o określoną wartość
  26. * @param timeout dodawana wartość timeoutu
  27. */
  28. void increaseTimeout(int timeout);
  29. /**
  30. * ustawia timeout jako aktualny timestamp + określona wartość
  31. * @param timeout czas timeoutu
  32. */
  33. void setTimeout(int timeout);
  34. /**
  35. * ustawia timeout na 0 (zwalnia port w tablicy NAT)
  36. */
  37. void free();
  38. /* mutuatory */
  39. const string& getIp() const;
  40. void setIp(const string& ip);
  41. int getPort() const;
  42. void setPort(int port);
  43. unsigned long getTimeout() const;
  44. };
  45. #endif /* NATITEM_H_ */