static int Reserve (TRI_string_buffer_t * self, const size_t size) {
  char* ptr;

  if (size < 1) {
    return TRI_ERROR_NO_ERROR;
  }

  if (size > Remaining(self)) {
    ptrdiff_t off;
    size_t len;

    off = self->_current - self->_buffer;
    len = (size_t) (1.2 * (self->_len + size));
    assert(len > 0);
    ptr = TRI_Reallocate(self->_memoryZone, self->_buffer, len + 1);

    if (ptr == NULL) {
      return TRI_ERROR_OUT_OF_MEMORY;
    }

    self->_buffer = ptr;
    self->_len = len;
    self->_current = self->_buffer + off;

    memset(self->_current, 0, Remaining(self) + 1);
  }

  return TRI_ERROR_NO_ERROR;
}
Example #2
0
QVariant DownloadTable::dataDisplayRole(const QModelIndex &index) const {
    switch(index.column()) {
    case ColumnFile:
        return downloadManager->downloadAt(index.row()).file;
    case ColumnStatus:
        return DownloadStatus2String(downloadManager->downloadAt(index.row()).status);
    case ColumnSize:
        if(downloadManager->downloadAt(index.row()).size != 0)
            return B2String(downloadManager->downloadAt(index.row()).size);
        else return "";
    case ColumnProgress:
        if(downloadManager->downloadAt(index.row()).size != 0)
            return tr("%1 %").arg((100 * downloadManager->downloadAt(index.row()).progress) / (float)downloadManager->downloadAt(index.row()).size, 0, '0', 2);
        return tr("0.00 %");
    case ColumnSpeed:
        if(downloadManager->downloadAt(index.row()).status == net::StatInProgress)
            return B2String(downloadManager->downloadAt(index.row()).speed).append("/s");
        return "";
    case ColumnRemaining:
        if(downloadManager->downloadAt(index.row()).status == net::StatInProgress)
            return Remaining(Remaining(downloadManager->downloadAt(index.row()).progress, downloadManager->downloadAt(index.row()).size, downloadManager->downloadAt(index.row()).speed));
        return "";
    case ColumnUrl:
        return downloadManager->downloadAt(index.row()).url;
    case ColumnPath:
        return downloadManager->downloadAt(index.row()).path;
    }
    return QVariant();
}
Example #3
0
std::string BinaryFP::ReadString()
{
	std::string str;

	if (Remaining() <= 0)
		return str;

	char c=fgetc(m_FP);
	while (c!=0 && Remaining()>0) {
		str+=c;
		c=fgetc(m_FP);
	}
	return str;
}
Example #4
0
QVariant DownloadTable::dataUserRole(const QModelIndex &index) const {
    switch(index.column()) {
    case ColumnFile:
        return downloadManager->downloadAt(index.row()).file;
    case ColumnStatus:
        return downloadManager->downloadAt(index.row()).status;
    case ColumnSize:
        return downloadManager->downloadAt(index.row()).size;
    case ColumnProgress:
        if(downloadManager->downloadAt(index.row()).size == 0)
            return 0;
        else
            return downloadManager->downloadAt(index.row()).progress/(qreal)downloadManager->downloadAt(index.row()).size;
    case ColumnSpeed:
        return downloadManager->downloadAt(index.row()).speed;
    case ColumnRemaining:
        return Remaining(
            downloadManager->downloadAt(index.row()).progress,
            downloadManager->downloadAt(index.row()).size,
            downloadManager->downloadAt(index.row()).speed);
    case ColumnUrl:
        return downloadManager->downloadAt(index.row()).url;
    case ColumnPath:
        return downloadManager->downloadAt(index.row()).path;
    }
    return QVariant();
}
Example #5
0
int BinaryFP::Read(unsigned char* data, size_t count)
{
	size_t num = Remaining();
	if (num < count)
		return fread(data, sizeof(unsigned char), num, m_FP);
	else
		return fread(data, sizeof(unsigned char), count, m_FP);
}
Example #6
0
unsigned short BinaryFP::ReadUInt16()
{
	if (Remaining()/sizeof(unsigned short) == 0) return 0;
	unsigned short s;
	//TODO endian
	s  = ((unsigned char)fgetc(m_FP));
	s |= ((unsigned char)fgetc(m_FP)) << 8;
	return s;
}
Example #7
0
float BinaryFP::ReadFloat()
{
	if (Remaining()/sizeof(unsigned int) == 0) return 0;
	unsigned int i;
	//TODO endian
	i  = ((unsigned char)fgetc(m_FP));
	i |= ((unsigned char)fgetc(m_FP)) << 8;
	i |= ((unsigned char)fgetc(m_FP)) << 16;
	i |= ((unsigned char)fgetc(m_FP)) << 24;
	return *((float*)(&i));
}
Example #8
0
unsigned int BinaryFP::ReadUInt32()
{
	if (Remaining()/sizeof(unsigned int) == 0) return 0;
	unsigned int i;
	//TODO endian
	i  = ((unsigned char)fgetc(m_FP));
	i |= ((unsigned char)fgetc(m_FP)) << 8;
	i |= ((unsigned char)fgetc(m_FP)) << 16;
	i |= ((unsigned char)fgetc(m_FP)) << 24;
	return i;
}
Example #9
0
bool CExtradataParser::NextMPEGStartCode(BYTE &code)
{
  BitByteAlign();
  DWORD dw = (DWORD)-1;
  do
	{
		if(!Remaining()) return false;
		dw = (dw << 8) | (BYTE)BitRead(8);
	}
	while((dw&0xffffff00) != 0x00000100);
  code = (BYTE)(dw&0xff);
  return true;
}
Example #10
0
	MessageType_t NetworkReader::ReadMessageType()
	{
		if (Remaining() >= sizeof(MessageType_t))
		{
			MessageType_t output;
			ClientSafeRead<MessageType_t>((char*)&output, &cursor, swapped);
			return output;
		}
		else
		{
			return 0;
		}
	}
Example #11
0
	float NetworkReader::ReadSingle()
	{
		if (Remaining() >= 4)
		{
			float output;
			ClientSafeRead<float>((char*)&output, &cursor, swapped);
			return output;
		}
		else
		{
			
			return 0;
		}
	}
Example #12
0
	uint32_t NetworkReader::ReadUint32()
	{
		if (Remaining() >= 4)
		{
			uint32_t output;
			ClientSafeRead<uint32_t>((char*)&output, &cursor, swapped);
			return output;
		}
		else
		{
			
			return 0;
		}
	}
Example #13
0
	int8_t NetworkReader::ReadInt8()
	{
		if (Remaining() >= 1)
		{
			int8_t output;
			ClientSafeRead<int8_t>((char*)&output, &cursor, swapped);
			return output;
		}
		else
		{
			
			return 0;
		}
	}
Example #14
0
int CzDataInput::getUBytes(unsigned char *data, int count)
{
	if (EndOfFile)
		return 0;

	int rem = Remaining();

	if (count > rem)
	{
		count = rem;
		EndOfFile = true;
	}

	memcpy(data, &Data[Position], count);

	Position += count;
	if (Position >= Length)
		EndOfFile = true;

	return count;
}
Example #15
0
size_t CByteParser::Pos() const
{
  return (size_t)(m_pEnd - m_pData - Remaining());
}
Example #16
0
size_t CExtradataParser::ParseMPEGSequenceHeader(BYTE *pTarget)
{
  BYTE id = 0;
  while(Remaining() && id != 0xb3) {
    if(!NextMPEGStartCode(id)) {
      return 0;
    }
  }

  if(id != 0xb3) {
    return 0;
  }

  size_t shpos = Pos() - 4;
  BitRead(12); // Width
  BitRead(12); // Height
  BitRead(4); // AR
  BitRead(4); // FPS
  BitRead(18); // Bitrate
  MARKER;
  BitRead(10); // VBV
  BitRead(1); // Constrained Flag
  // intra quantisizer matrix
  if(BitRead(1)) {
    for (uint8_t i = 0; i < 64; i++) {
      BitRead(8);
    }
  }
  // non-intra quantisizer matrix
  if(BitRead(1)) {
    for (uint8_t i = 0; i < 64; i++) {
      BitRead(8);
    }
  }
  
  size_t shlen = Pos() - shpos;

  size_t shextpos = 0;
  size_t shextlen = 0;

  if(NextMPEGStartCode(id) && id == 0xb5) { // sequence header ext
    shextpos = Pos() - 4;
    
    int startcode = BitRead(4); // Start Code Id; TODO: DIfferent start code ids mean different length of da2a
    ASSERT(startcode == 1);
    
    BitRead(1); // Profile Level Escape
    BitRead(3); // Profile
    BitRead(4); // Level
    BitRead(1); // Progressive
    BitRead(2); // Chroma
    BitRead(2); // Width Extension
    BitRead(2); // Height Extension
    BitRead(12); // Bitrate Extension
    MARKER;
    BitRead(8); // VBV Buffer Size Extension
    BitRead(1); // Low Delay
    BitRead(2); // FPS Extension n
    BitRead(5); // FPS Extension d

    shextlen = Pos() - shextpos;
  }

  memcpy(pTarget, Start()+shpos, shlen);
  if (shextpos) {
    memcpy(pTarget+shlen, Start()+shextpos, shextlen);
  }
  return shlen + shextlen;
}
Example #17
0
unsigned char BinaryFP::ReadUInt8()
{
	if (Remaining() == 0) return 0;
	return (unsigned char)fgetc(m_FP);
}