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

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