Esempio n. 1
0
CString FileIO::getFixedString()
{
	struct typ_prefixByte
	{
		unsigned int len : 7;
		unsigned int encoded : 1;
	};

	unsigned long finalLen = 0;

	unsigned char result = getUByte();
	typ_prefixByte prefix = *((typ_prefixByte*)(&result));

	finalLen = finalLen | (unsigned long)prefix.len;

	int bitshift = 0;

	while (prefix.encoded)
	{
		bitshift += 7;
		result = getUByte();
		prefix = *((typ_prefixByte*)(&result));
		finalLen = finalLen | ((unsigned long)prefix.len) << bitshift;
	}

	char * string = getByteArray(finalLen);
	char * tmpString = new char [finalLen + 1];
	memcpy(tmpString, string, finalLen);
	tmpString[finalLen] = '\0';
	CString finalString(tmpString);
	delete [] tmpString;
	delete [] string;

	return finalString;
}
Esempio n. 2
0
int Hdf::compare(unsigned char v2) const {
  unsigned char v1 = getUByte();
  if (v1 == v2) return 0;
  return v1 > v2 ? 1 : -1;
}
Esempio n. 3
0
unsigned char PvObject::getUByte() const
{
    std::string key = PyPvDataUtility::getValueOrSingleFieldName(pvStructurePtr);
    return getUByte(key);
}