#pragma once
#include "Sdu.h"

Sdu::Sdu()
{
}

Sdu::~Sdu()
{
}

Sdu::Sdu(uint16_t ZdrojovaAdresa, uint16_t CilovaAdresa, double AktualiniCas, uint16_t PoradoveCislo, uint8_t Typ, uint16_t _velikost) {
	zdrojovaAdresa = ZdrojovaAdresa;
	cilovaAdresa = CilovaAdresa;
	casOdeslani = AktualiniCas;
	data = 60;
	typ = Typ;
	poradoveCislo = PoradoveCislo;
	velikost = _velikost;
}

int16_t Sdu::getZdrojovaAdresa()
{
	return int16_t(zdrojovaAdresa);
}

Sdu Sdu::fragmentuj(int16_t velikostPrvnihoFragmentu) {
	Sdu druhyFragment = Sdu(zdrojovaAdresa, cilovaAdresa, casOdeslani, poradoveCislo, typ, velikost - velikostPrvnihoFragmentu);
	velikost = velikostPrvnihoFragmentu;

	return druhyFragment;
}

Sdu Sdu::deFragmentuj(Sdu predchoziFragment) {
	Sdu defragmentovanyPaket = Sdu(zdrojovaAdresa, cilovaAdresa, casOdeslani, poradoveCislo, typ, velikost + predchoziFragment.getVelikost());
	return defragmentovanyPaket;
}