/**
@return Represents the content of the current flat buffer field as 64 bit integer value.
		If the current flat buffer field type does not refer to a 64 bit integer, then 
		the function will do a data conversion as described in the table which can be found
		in SqlBufIterator.h file.
*/
TInt64 TSqlBufRIterator::Int64() const
	{
	__ASSERT_DEBUG(iCurrent >= iBegin && iCurrent < iEnd, __SQLPANIC(ESqlPanicInternalError));
	switch(Type())
		{
		case ESqlInt:
		case ESqlZeroBlob:
			return AsInt();
		case ESqlReal:
			{
			TReal roundVal;
			TInt err = Math::Round(roundVal, AsReal(), 0);
			if(err != KErrNone)
				{
				return KMinTInt64;
				}
			TRealX val(roundVal);
			return static_cast <TInt64> (val);
			}
		case ESqlNull:
		case ESqlText:
		case ESqlBinary:
			return 0;
		default:
			return AsInt64();
		}
	}
Esempio n. 2
0
const char * GFFField::tostring(char * buffer, int nMax, int nIndex){

	switch (this->Type){

		case 0:sprintf(buffer, "%u", AsByte()); break;
		case 1:sprintf(buffer, "%d", AsChar()); break;
		case 2:sprintf(buffer, "%u", AsWord()); break;
		case 3:sprintf(buffer, "%d", AsShort()); break;
		case 4:sprintf(buffer, "%u", AsDword()); break;
		case 5:sprintf(buffer, "%d", AsInt()); break;
		case 6:sprintf(buffer, "%llu", AsDword64()); break;
		case 7:sprintf(buffer, "%lld", AsInt64()); break;
		case 8:sprintf(buffer, "%f", AsFloat()); break;
		case 9:sprintf(buffer, "%Lf", AsDouble()); break;
		case 10:strncpy(buffer, AsExoString()->str, nMax); break;
		case 11:strncpy(buffer, AsResRef()->str, nMax); break;
		case 12:
			
			if (nIndex >= (int)AsExoLocString()->StringCount)
				buffer[0] = '\0';
			else				
				strncpy(buffer, AsExoLocString()->SubString[nIndex].str, nMax); 
			break;
		case 13:sprintf(buffer, "<binary %u bytes>", AsVoid()->Size); break;
		case 14:sprintf(buffer, "struct ID: %d", AsStruct()->Type ); break;
		case 15:sprintf(buffer, "list %i entries", AsList()->Size); break;
		default:buffer[0] = '\0'; break;
	}

	return buffer;
}
Esempio n. 3
0
LLBC_Variant &LLBC_Variant::BecomeInt64()
{
    if (!IsInt64())
    {
        *this = AsInt64();
    }

    return *this;
}
/*************************************
 * operator ==
 *************************************/
bool SHVDataVariantImpl::operator==(const SHVDataVariant& val) const
{
	if (DataType == val.GetDataType())
	{
		switch (DataType)
		{
		case SHVDataVariant::TypeInt:
			return AsInt() == val.AsInt();
		case SHVDataVariant::TypeInt64:
			return AsInt64() == val.AsInt64();
		case SHVDataVariant::TypeBool:
			return AsBool() == val.AsBool();
		case SHVDataVariant::TypeDouble:
			return AsDouble() == val.AsDouble();
		case SHVDataVariant::TypeString:
			return AsString() == val.AsString();
		case SHVDataVariant::TypeTime:
			return (AsTime() == val.AsTime() ? true : false);
			break;
		}
	}
	return false;
}
Esempio n. 5
0
bool LLBC_Variant::AsBool() const
{
    if (IsNil())
    {
        return false;
    }
    else if (IsDict())
    {
        return false;
    }
    else if (IsStr())
    {
        LLBC_String trimedData(LLBC_Trim(_holder.str));
        if (trimedData.length() != 4 && trimedData.length() != 5)
        {
            return (AsInt64() != 0 ? true : false);
        }

        LLBC_String lowerData(LLBC_ToLower(trimedData.c_str()));
        return (lowerData == "true" ? true : false);
    }

    return _holder.raw.uint64Val != 0;
}
/**
@return Represents the content of the current flat buffer field as real value.
		If the current flat buffer field type does not refer to a real, then 
		the function will do a data conversion as described in the table which can be found
		in SqlBufIterator.h file.
*/
TReal TSqlBufRIterator::Real() const
	{
	__ASSERT_DEBUG(iCurrent >= iBegin && iCurrent < iEnd, __SQLPANIC(ESqlPanicInternalError));
	switch(Type())
		{
		case ESqlInt:
		case ESqlZeroBlob:
			{
			TRealX val(AsInt());	
			return static_cast <TReal> (val);
			}
		case ESqlInt64:
			{
			TRealX val(AsInt64());	
			return static_cast <TReal> (val);
			}
		case ESqlNull:
		case ESqlText:
		case ESqlBinary:
			return 0.0;
		default:
			return AsReal();
		}
	}
Esempio n. 7
0
LLBC_Variant::operator sint64() const
{
    return AsInt64();
}
Esempio n. 8
0
long LLBC_Variant::AsLong() const
{
    return static_cast<long>(AsInt64());
}
Esempio n. 9
0
sint32 LLBC_Variant::AsInt32() const
{
    return static_cast<sint32>(AsInt64());
}
Esempio n. 10
0
sint16 LLBC_Variant::AsInt16() const
{
    return static_cast<sint16>(AsInt64());
}
Esempio n. 11
0
sint8 LLBC_Variant::AsInt8() const
{
    return static_cast<sint8>(AsInt64());
}