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