Files

53 lines
1.1 KiB
C++

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