MemoryObject* MemoryObjectFactory::createBuffer(cl_mem_flags flags, size_t size, void* host_ptr, cl_int* errcode_ret) { setIfNotNull(errcode_ret, CL_SUCCESS); if (flags & CL_MEM_USE_HOST_PTR) { if (!host_ptr) { setIfNotNull(errcode_ret, CL_INVALID_HOST_PTR); return 0; } else { MemoryObject* newobj = new Buffer(host_ptr); objects_.insert(newobj); return newobj; } } if (flags & CL_MEM_ALLOC_HOST_PTR) { MemoryObject* newobj = new Buffer(size); objects_.insert(newobj); return newobj; } MemoryObject* newobj = new Buffer(size); objects_.insert(newobj); return newobj; //There should be a case which triggers this? setIfNotNull(errcode_ret, CL_INVALID_VALUE); return 0; }
QVariant BoolTypeValueFactory::getValueFromString( const QString & s, bool * ok ) const { QString str = s.toLower(); if( str == TRUE_STR || str == YES_STR || str == ONE_STR ) { setIfNotNull( ok, true ); return qVariantFromValue( true ); } if( str == FALSE_STR || str == NO_STR || str == NIL_STR ) { setIfNotNull( ok, true ); return qVariantFromValue( false ); } setIfNotNull( ok, false ); return QVariant(); }
/**************************************** * MapTypeValueFactory ****************************************/ QVariant MapTypeValueFactory::getValueFromString(const QString &str, bool *ok) const { setIfNotNull(ok, true); StrStrMap map = StrPackUtils::unpackMap(str, StrPackUtils::SingleQuotes); QVariantMap variantMap; foreach (const QString& key, map.keys()) { variantMap.insert(key, map.value(key)); } return variantMap; }
/**************************************** * NumTypeValueFactory ****************************************/ QVariant NumTypeValueFactory::getValueFromString( const QString & str, bool * okArg ) const { bool ok = false; qint64 longIntCandidate = str.toLongLong(&ok); if(ok) { setIfNotNull(okArg, true); return qVariantFromValue(longIntCandidate); } int intCandidate = str.toInt(&ok); if(ok) { setIfNotNull(okArg, true); return qVariantFromValue(intCandidate); } double doubleCandidate = str.toDouble(&ok); if(ok) { setIfNotNull(okArg, true); return qVariantFromValue(doubleCandidate); } setIfNotNull(okArg, false); return QVariant(); }
/**************************************** * StringListTypeValueFactory ****************************************/ QVariant StringListTypeValueFactory::getValueFromString(const QString &str, bool *ok) const { setIfNotNull(ok, true); return QVariant::fromValue<QStringList>(StrPackUtils::unpackStringList(str, StrPackUtils::SingleQuotes)); }