Esempio n. 1
0
void UDPServer::start()
{
    sleep(UDPSleep);
    while(UDPLoopGuard)
    {
        VideoFile videofileToSend = getFromQueue();

        std::ifstream videoFile;
        videoFile.open(videofileToSend.getLocalPath());
        bool isBegin = true;
        uint datagramNumber = 1;
        while(!videoFile.eof())
        {
            int maxDataSize = MAX_DATAGRAM_SIZE - DATAGRAM_CUSTOM_HEADER_SIZE;
            char bytesFromFile[maxDataSize];
            memset(bytesFromFile, 0, maxDataSize);
            videoFile.read(bytesFromFile, maxDataSize);

            std::string bytesStr(bytesFromFile, videoFile.gcount());
            if (isBegin)
            {
                sendDatagram(datagramNumber, videofileToSend.getId(), UdpMessagesTypes::Begin, bytesStr,videofileToSend.getTimestamp());
            } else
            {
                sendDatagram(datagramNumber, videofileToSend.getId(), UdpMessagesTypes::Middle, bytesStr,videofileToSend.getTimestamp());
            }
            isBegin = false;
            datagramNumber++;
        }
        sendDatagram(datagramNumber, videofileToSend.getId(), UdpMessagesTypes::End, "", videofileToSend.getTimestamp());
        videoFile.close();
    }
}
Esempio n. 2
0
string Configuration::getBytes(const std::string& key) const
{
  std::string value = get(key);
  QByteArray arr(value.data(), value.size());
  QByteArray bytes = QByteArray::fromBase64(arr);
  std::string bytesStr(bytes.data(), bytes.size());
  return bytesStr;
}