/** * @file NATItem.h * * Created on: 10-01-2017 * @author Piotr Dergun */ #ifndef NATITEM_H_ #define NATITEM_H_ #include "common.h" class NATItem { /** IP węzła za NAT-em do którego ma trafić odpowiedź / z którego przyszło żądanie */ string ip; // /** port węzła za NAT-em, do którego ma trafić odpowiedź */ int port; /** czas, na jaki port w tablicy NAT pozostaje otwarty do ewentualnej odpowiedzi z zewnątrz */ unsigned long timeout; public: NATItem(); /** * sprawdza, czy port jest wolny (timeout == 0) */ bool isFree(); /** * zwiększa timeout o określoną wartość * @param timeout dodawana wartość timeoutu */ void increaseTimeout(int timeout); /** * ustawia timeout jako aktualny timestamp + określona wartość * @param timeout czas timeoutu */ void setTimeout(int timeout); /** * ustawia timeout na 0 (zwalnia port w tablicy NAT) */ void free(); /* mutuatory */ const string& getIp() const; void setIp(const string& ip); int getPort() const; void setPort(int port); unsigned long getTimeout() const; }; #endif /* NATITEM_H_ */