#include "pidatatransfer.h"


PIByteArray PIDataTransfer::buildPacket(Part fi) {
	PIByteArray ba;
	ba.resize(fi.size);
    memcpy(ba.data(), data_.data(fi.start), fi.size);
	return ba;
}


void PIDataTransfer::receivePart(Part fi, PIByteArray ba, PIByteArray pheader) {
	if (data_.size() < fi.start + fi.size) data_.resize(fi.start + fi.size);
    memcpy(data_.data(fi.start), ba.data(), ba.size_s());
}


bool PIDataTransfer::send(const PIByteArray& ba) {
	data_ = ba;
	buildSession(PIVector<Part>() << Part(0, data_.size()));
	return send_process();
}


