#pragma once
#include <cstdio>
#include <iostream>
#include <vector>
#include "Sdu.h"


class AllocId {

public:
	AllocId::AllocId(int16_t _allocId, int16_t _StartTime, int16_t _GrantSize);
	
	AllocId(int16_t _allocId);

	uint16_t getAllocID() { return allocId; }
	void setAllocID(uint16_t _allocId) { allocId = _allocId; }

	uint16_t getStartTime() { return StartTime; }
	void setStartTime(uint16_t startTime) { StartTime = startTime; }

	uint16_t getGrantSize() { return GrantSize; }
	void setGrantSize(uint16_t grantSize) { GrantSize = grantSize; }

	uint16_t getStartTimeNew() { return StartTimeNew; }
	void setStartTimeNew(uint16_t startTimeNew) { StartTimeNew = startTimeNew; }

	uint16_t getGrantSizeNew() { return GrantSizeNew; }
	void setGrantSizeNew(uint16_t grantSizeNew) { GrantSizeNew = grantSizeNew; }

	uint8_t getdbruByloNastaveno() { return dbruByloNastaveno; }
	void setdbruByloNastaveno(uint8_t _dbruByloNastaveno) { dbruByloNastaveno = _dbruByloNastaveno; }

	bool getOdesilani() { return Odesilani; }
	void setOdesilani(bool odesilani) { Odesilani = odesilani; }
	
	Sdu getFragmentovaneSdu() { return fragmentovaneSdu; }
	void setFragmentovaneSdu(Sdu _fragmentovaneSdu) { fragmentovaneSdu = _fragmentovaneSdu; }

	std::vector<Sdu>* getBufferUp() { return &BufferUp; }

private:
	uint16_t allocId=0;
	uint16_t StartTime=0;		
	uint16_t GrantSize=0;
	uint8_t dbruByloNastaveno = 0;
	uint16_t StartTimeNew = 0;		
	uint16_t GrantSizeNew = 0;
	bool Odesilani;
	std::string data;
	std::vector<Sdu> BufferUp;
	Sdu fragmentovaneSdu;
};