您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ uhash_get函数代码示例

51自学网 2021-06-03 09:06:42
  C++
这篇教程C++ uhash_get函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中uhash_get函数的典型用法代码示例。如果您正苦于以下问题:C++ uhash_get函数的具体用法?C++ uhash_get怎么用?C++ uhash_get使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了uhash_get函数的22个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: getKey

CollData *CollDataCache::get(UCollator *collator, UErrorCode &status){    char keyBuffer[KEY_BUFFER_SIZE];    int32_t keyLength = KEY_BUFFER_SIZE;    char *key = getKey(collator, keyBuffer, &keyLength);    CollData *result = NULL, *newData = NULL;    CollDataCacheEntry *entry = NULL, *newEntry = NULL;    umtx_lock(&lock);    entry = (CollDataCacheEntry *) uhash_get(cache, key);    if (entry == NULL) {        umtx_unlock(&lock);        newData = new CollData(collator, key, keyLength, status);        newEntry = new CollDataCacheEntry(newData);        if (U_FAILURE(status) || newData == NULL || newEntry == NULL) {            status = U_MEMORY_ALLOCATION_ERROR;            return NULL;        }        umtx_lock(&lock);        entry = (CollDataCacheEntry *) uhash_get(cache, key);        if (entry == NULL) {            uhash_put(cache, newData->key, newEntry, &status);            umtx_unlock(&lock);            if (U_FAILURE(status)) {                delete newEntry;                delete newData;                return NULL;            }            return newData;        }    }    result = entry->data;    entry->refCount += 1;    umtx_unlock(&lock);    if (key != keyBuffer) {        deleteKey(key);    }    if (newEntry != NULL) {        delete newEntry;        delete newData;    }    return result;}
开发者ID:Abocer,项目名称:android-4.2_r1,代码行数:55,


示例2: getCDFUnitFallback

// getCDFUnitFallback returns a pointer to the prefix-suffix pair for a given// variant and log10 value within table. If the given variant doesn't exist, it// falls back to the OTHER variant. Therefore, this method will always return// some non-NULL value.static const CDFUnit* getCDFUnitFallback(const UHashtable* table, const UnicodeString& variant, int32_t log10Value) {  CharString cvariant;  UErrorCode status = U_ZERO_ERROR;  const CDFUnit *cdfUnit = NULL;  cvariant.appendInvariantChars(variant, status);  if (!U_FAILURE(status)) {    cdfUnit = (const CDFUnit*) uhash_get(table, cvariant.data());  }  if (cdfUnit == NULL) {    cdfUnit = (const CDFUnit*) uhash_get(table, gOther);  }  return &cdfUnit[log10Value];}
开发者ID:MoonchildProductions,项目名称:Pale-Moon,代码行数:17,


示例3: initializeMetaToOlson

UnicodeString& U_EXPORT2ZoneMeta::getZoneIdByMetazone(const UnicodeString &mzid, const UnicodeString &region, UnicodeString &result) {    initializeMetaToOlson();    UBool isSet = FALSE;    if (gMetaToOlson != NULL) {        UErrorCode status = U_ZERO_ERROR;        UChar mzidUChars[ZID_KEY_MAX];        mzid.extract(mzidUChars, ZID_KEY_MAX, status);        if (U_SUCCESS(status) && status!=U_STRING_NOT_TERMINATED_WARNING) {            UVector *mappings = (UVector*)uhash_get(gMetaToOlson, mzidUChars);            if (mappings != NULL) {                // Find a preferred time zone for the given region.                for (int32_t i = 0; i < mappings->size(); i++) {                    MetaToOlsonMappingEntry *olsonmap = (MetaToOlsonMappingEntry*)mappings->elementAt(i);                    if (region.compare(olsonmap->territory, -1) == 0) {                        result.setTo(olsonmap->id);                        isSet = TRUE;                        break;                    } else if (u_strcmp(olsonmap->territory, gWorld) == 0) {                        result.setTo(olsonmap->id);                        isSet = TRUE;                    }                }            }        }    }    if (!isSet) {        result.remove();    }    return result;}
开发者ID:Andproject,项目名称:platform_external_icu4c,代码行数:31,


示例4:

////  RBBISymbolTable::lookup       This function from the abstract symbol table inteface//                                looks up a variable name and returns a UnicodeString//                                containing the substitution text.////                                The variable name does NOT include the leading $.//const UnicodeString * RBBISymbolTable::lookup(const UnicodeString & s) const{	RBBISymbolTableEntry * el;	RBBINode       *       varRefNode;	RBBINode       *       exprNode;	RBBINode       *       usetNode;	const UnicodeString  * retString;	RBBISymbolTable    *   This = (RBBISymbolTable *)this;   // cast off const	el = (RBBISymbolTableEntry *)uhash_get(fHashTable, &s);	if (el == NULL)	{		return NULL;	}	varRefNode = el->val;	exprNode   = varRefNode->fLeftChild;     // Root node of expression for variable	if (exprNode->fType == RBBINode::setRef)	{		// The $variable refers to a single UnicodeSet		//   return the ffffString, which will subsequently be interpreted as a		//   stand-in character for the set by RBBISymbolTable::lookupMatcher()		usetNode = exprNode->fLeftChild;		This->fCachedSetLookup = usetNode->fInputSet;		retString = &ffffString;	}	else	{		// The variable refers to something other than just a set.		// return the original source string for the expression		retString = &exprNode->fText;		This->fCachedSetLookup = NULL;	}	return retString;}
开发者ID:Botyto,项目名称:Core,代码行数:42,


示例5:

const UChar *ZNStringPool::get(const UChar *s, UErrorCode &status) {    const UChar *pooledString;    if (U_FAILURE(status)) {        return &EmptyString;    }    pooledString = static_cast<UChar *>(uhash_get(fHash, s));    if (pooledString != NULL) {        return pooledString;    }    int32_t length = u_strlen(s);    int32_t remainingLength = POOL_CHUNK_SIZE - fChunks->fLimit;    if (remainingLength <= length) {        U_ASSERT(length < POOL_CHUNK_SIZE);        if (length >= POOL_CHUNK_SIZE) {            status = U_INTERNAL_PROGRAM_ERROR;            return &EmptyString;        }        ZNStringPoolChunk *oldChunk = fChunks;        fChunks = new ZNStringPoolChunk;        if (fChunks == NULL) {            status = U_MEMORY_ALLOCATION_ERROR;            return &EmptyString;        }        fChunks->fNext = oldChunk;    }        UChar *destString = &fChunks->fStrings[fChunks->fLimit];    u_strcpy(destString, s);    fChunks->fLimit += (length + 1);    uhash_put(fHash, destString, destString, &status);    return destString;}        
开发者ID:00zhengfu00,项目名称:third_party,代码行数:34,


示例6: fillInMissing

// fillInMissing ensures that the data in result is complete.// result data is complete if for each variant in result, there exists// a prefix-suffix pair for each log10 value and there also exists// a divisor for each log10 value.//// First this function figures out for which log10 values, the other// variant already had data. These are the same log10 values defined// in CLDR. //// For each log10 value not defined in CLDR, it uses the divisor for// the last defined log10 value or 1.//// Then for each variant, it does the following. For each log10// value not defined in CLDR, copy the prefix-suffix pair from the// previous log10 value. If log10 value is defined in CLDR but is// missing from given variant, copy the prefix-suffix pair for that// log10 value from the 'other' variant.static void fillInMissing(CDFLocaleStyleData* result) {  const CDFUnit* otherUnits =      (const CDFUnit*) uhash_get(result->unitsByVariant, gOther);  UBool definedInCLDR[MAX_DIGITS];  double lastDivisor = 1.0;  for (int32_t i = 0; i < MAX_DIGITS; ++i) {    if (!otherUnits[i].isSet()) {      result->divisors[i] = lastDivisor;      definedInCLDR[i] = FALSE;    } else {      lastDivisor = result->divisors[i];      definedInCLDR[i] = TRUE;    }  }  // Iterate over each variant.  int32_t pos = UHASH_FIRST;  const UHashElement* element = uhash_nextElement(result->unitsByVariant, &pos);  for (;element != NULL; element = uhash_nextElement(result->unitsByVariant, &pos)) {    CDFUnit* units = (CDFUnit*) element->value.pointer;    for (int32_t i = 0; i < MAX_DIGITS; ++i) {      if (definedInCLDR[i]) {        if (!units[i].isSet()) {          units[i] = otherUnits[i];        }      } else {        if (i == 0) {          units[0].markAsSet();        } else {          units[i] = units[i - 1];        }      }    }  }}
开发者ID:MoonchildProductions,项目名称:Pale-Moon,代码行数:51,


示例7: initAvailableMetaZoneIDs

static void U_CALLCONV initAvailableMetaZoneIDs () {    U_ASSERT(gMetaZoneIDs == NULL);    U_ASSERT(gMetaZoneIDTable == NULL);    ucln_i18n_registerCleanup(UCLN_I18N_ZONEMETA, zoneMeta_cleanup);    UErrorCode status = U_ZERO_ERROR;    gMetaZoneIDTable = uhash_open(uhash_hashUnicodeString, uhash_compareUnicodeString, NULL, &status);    if (U_FAILURE(status) || gMetaZoneIDTable == NULL) {        gMetaZoneIDTable = NULL;        return;    }    uhash_setKeyDeleter(gMetaZoneIDTable, uprv_deleteUObject);    // No valueDeleter, because the vector maintain the value objects    gMetaZoneIDs = new UVector(NULL, uhash_compareUChars, status);    if (U_FAILURE(status) || gMetaZoneIDs == NULL) {        gMetaZoneIDs = NULL;        uhash_close(gMetaZoneIDTable);        gMetaZoneIDTable = NULL;        return;    }    gMetaZoneIDs->setDeleter(uprv_free);    UResourceBundle *rb = ures_openDirect(NULL, gMetaZones, &status);    UResourceBundle *bundle = ures_getByKey(rb, gMapTimezonesTag, NULL, &status);    UResourceBundle res;    ures_initStackObject(&res);    while (U_SUCCESS(status) && ures_hasNext(bundle)) {        ures_getNextResource(bundle, &res, &status);        if (U_FAILURE(status)) {            break;        }        const char *mzID = ures_getKey(&res);        int32_t len = uprv_strlen(mzID);        UChar *uMzID = (UChar*)uprv_malloc(sizeof(UChar) * (len + 1));        if (uMzID == NULL) {            status = U_MEMORY_ALLOCATION_ERROR;            break;        }        u_charsToUChars(mzID, uMzID, len);        uMzID[len] = 0;        UnicodeString *usMzID = new UnicodeString(uMzID);        if (uhash_get(gMetaZoneIDTable, usMzID) == NULL) {            gMetaZoneIDs->addElement((void *)uMzID, status);            uhash_put(gMetaZoneIDTable, (void *)usMzID, (void *)uMzID, &status);        } else {            uprv_free(uMzID);            delete usMzID;        }    }    ures_close(&res);    ures_close(bundle);    ures_close(rb);    if (U_FAILURE(status)) {        uhash_close(gMetaZoneIDTable);        delete gMetaZoneIDs;        gMetaZoneIDTable = NULL;        gMetaZoneIDs = NULL;    }}
开发者ID:Akesure,项目名称:jxcore,代码行数:60,


示例8: checkForOtherVariants

// Checks to make sure that an "other" variant is present in all// powers of 10.static void checkForOtherVariants(CDFLocaleStyleData* result,    UErrorCode& status) {  if (result == NULL || result->unitsByVariant == NULL) {    return;  }  const CDFUnit* otherByBase =      (const CDFUnit*) uhash_get(result->unitsByVariant, gOther);  if (otherByBase == NULL) {    status = U_INTERNAL_PROGRAM_ERROR;    return;  }  // Check all other plural variants, and make sure that if  // any of them are populated, then other is also populated  int32_t pos = UHASH_FIRST;  const UHashElement* element;  while ((element = uhash_nextElement(result->unitsByVariant, &pos)) != NULL) {    CDFUnit* variantsByBase = (CDFUnit*) element->value.pointer;    if (variantsByBase == otherByBase) continue;    for (int32_t log10Value = 0; log10Value < MAX_DIGITS; ++log10Value) {      if (variantsByBase[log10Value].isSet()          && !otherByBase[log10Value].isSet()) {        status = U_INTERNAL_PROGRAM_ERROR;        return;      }    }  }}
开发者ID:MoonchildProductions,项目名称:Pale-Moon,代码行数:31,


示例9: lock

U_CDECL_ENDU_NAMESPACE_BEGINLocale *locale_set_default_internal(const char *id, UErrorCode& status) {    // Synchronize this entire function.    Mutex lock(&gDefaultLocaleMutex);    UBool canonicalize = FALSE;    // If given a NULL string for the locale id, grab the default    //   name from the system.    //   (Different from most other locale APIs, where a null name means use    //    the current ICU default locale.)    if (id == NULL) {        id = uprv_getDefaultLocaleID();   // This function not thread safe? TODO: verify.        canonicalize = TRUE; // always canonicalize host ID    }    char localeNameBuf[512];    if (canonicalize) {        uloc_canonicalize(id, localeNameBuf, sizeof(localeNameBuf)-1, &status);    } else {        uloc_getName(id, localeNameBuf, sizeof(localeNameBuf)-1, &status);    }    localeNameBuf[sizeof(localeNameBuf)-1] = 0;  // Force null termination in event of                                                 //   a long name filling the buffer.                                                 //   (long names are truncated.)                                                 //    if (U_FAILURE(status)) {        return gDefaultLocale;    }    if (gDefaultLocalesHashT == NULL) {        gDefaultLocalesHashT = uhash_open(uhash_hashChars, uhash_compareChars, NULL, &status);        if (U_FAILURE(status)) {            return gDefaultLocale;        }        uhash_setValueDeleter(gDefaultLocalesHashT, deleteLocale);        ucln_common_registerCleanup(UCLN_COMMON_LOCALE, locale_cleanup);    }    Locale *newDefault = (Locale *)uhash_get(gDefaultLocalesHashT, localeNameBuf);    if (newDefault == NULL) {        newDefault = new Locale(Locale::eBOGUS);        if (newDefault == NULL) {            status = U_MEMORY_ALLOCATION_ERROR;            return gDefaultLocale;        }        newDefault->init(localeNameBuf, FALSE);        uhash_put(gDefaultLocalesHashT, (char*) newDefault->getName(), newDefault, &status);        if (U_FAILURE(status)) {            return gDefaultLocale;        }    }    gDefaultLocale = newDefault;    return gDefaultLocale;}
开发者ID:winlibs,项目名称:icu4c,代码行数:59,


示例10: umtx_initOnce

const UChar*ZoneMeta::findMetaZoneID(const UnicodeString& mzid) {    umtx_initOnce(gMetaZoneIDsInitOnce, &initAvailableMetaZoneIDs);    if (gMetaZoneIDTable == NULL) {        return NULL;    }    return (const UChar*)uhash_get(gMetaZoneIDTable, &mzid);}
开发者ID:basti1302,项目名称:node,代码行数:8,


示例11: getCDFLocaleStyleData

// getCDFLocaleStyleData returns pointer to formatting data for given locale and // style within the global cache. On cache miss, getCDFLocaleStyleData loads// the data from CLDR into the global cache before returning the pointer. If a// UNUM_LONG data is requested for a locale, and that locale does not have// UNUM_LONG data, getCDFLocaleStyleData will fall back to UNUM_SHORT data for// that locale.static const CDFLocaleStyleData* getCDFLocaleStyleData(const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status) {  if (U_FAILURE(status)) {    return NULL;  }  CDFLocaleData* result = NULL;  const char* key = inLocale.getName();  {    Mutex lock(&gCompactDecimalMetaLock);    if (gCompactDecimalData == NULL) {      gCompactDecimalData = uhash_open(uhash_hashChars, uhash_compareChars, NULL, &status);      if (U_FAILURE(status)) {        return NULL;      }      uhash_setKeyDeleter(gCompactDecimalData, uprv_free);      uhash_setValueDeleter(gCompactDecimalData, deleteCDFLocaleData);      ucln_i18n_registerCleanup(UCLN_I18N_CDFINFO, cdf_cleanup);    } else {      result = (CDFLocaleData*) uhash_get(gCompactDecimalData, key);    }  }  if (result != NULL) {    return extractDataByStyleEnum(*result, style, status);  }  result = loadCDFLocaleData(inLocale, status);  if (U_FAILURE(status)) {    return NULL;  }  {    Mutex lock(&gCompactDecimalMetaLock);    CDFLocaleData* temp = (CDFLocaleData*) uhash_get(gCompactDecimalData, key);    if (temp != NULL) {      delete result;      result = temp;    } else {      uhash_put(gCompactDecimalData, uprv_strdup(key), (void*) result, &status);      if (U_FAILURE(status)) {        return NULL;      }    }  }  return extractDataByStyleEnum(*result, style, status);}
开发者ID:MoonchildProductions,项目名称:Pale-Moon,代码行数:50,


示例12: ulocimp_toLegacyType

U_CFUNC const char*ulocimp_toLegacyType(const char* key, const char* type, UBool* isKnownKey, UBool* isSpecialType) {    if (isKnownKey != NULL) {        *isKnownKey = FALSE;    }    if (isSpecialType != NULL) {        *isSpecialType = FALSE;    }    if (!init()) {        return NULL;    }    LocExtKeyData* keyData = (LocExtKeyData*)uhash_get(gLocExtKeyMap, key);    if (keyData != NULL) {        if (isKnownKey != NULL) {            *isKnownKey = TRUE;        }        LocExtType* t = (LocExtType*)uhash_get(keyData->typeMap, type);        if (t != NULL) {            return t->legacyId;        }        if (keyData->specialTypes != SPECIALTYPE_NONE) {            UBool matched = FALSE;            if (keyData->specialTypes & SPECIALTYPE_CODEPOINTS) {                matched = isSpecialTypeCodepoints(type);            }            if (!matched && keyData->specialTypes & SPECIALTYPE_REORDER_CODE) {                matched = isSpecialTypeReorderCode(type);            }            if (!matched && keyData->specialTypes & SPECIALTYPE_RG_KEY_VALUE) {                matched = isSpecialTypeRgKeyValue(type);            }            if (matched) {                if (isSpecialType != NULL) {                    *isSpecialType = TRUE;                }                return type;            }        }    }    return NULL;}
开发者ID:MoonchildProductions,项目名称:Pale-Moon,代码行数:43,


示例13: umtx_initOnce

/** * Returns a pointer to a Region using the given numeric region code. If the numeric region code is not recognized, * the appropriate error code will be set ( U_ILLEGAL_ARGUMENT_ERROR ). */const Region* U_EXPORT2Region::getInstance (int32_t code, UErrorCode &status) {    umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status);    if (U_FAILURE(status)) {        return NULL;    }    Region *r = (Region *)uhash_iget(numericCodeMap,code);    if ( !r ) { // Just in case there's an alias that's numeric, try to find it.        UnicodeString pat = UNICODE_STRING_SIMPLE("0");        LocalPointer<DecimalFormat> df(new DecimalFormat(pat,status), status);        if( U_FAILURE(status) ) {            return NULL;        }        UnicodeString id;        id.remove();        FieldPosition posIter;        df->format(code,id, posIter, status);        r = (Region *)uhash_get(regionAliases,&id);    }    if( U_FAILURE(status) ) {        return NULL;    }    if ( !r ) {        status = U_ILLEGAL_ARGUMENT_ERROR;        return NULL;    }    if ( r->type == URGN_DEPRECATED && r->preferredValues->size() == 1) {        StringEnumeration *pv = r->getPreferredValues(status);        pv->reset(status);        const UnicodeString *ustr = pv->snext(status);        r = (Region *)uhash_get(regionIDMap,(void *)ustr);        delete pv;    }    return r;}
开发者ID:Cyril2004,项目名称:proto-quic,代码行数:46,


示例14: SPUString

SPUString *SPUStringPool::addString(UnicodeString *src, UErrorCode &status) {    SPUString *hashedString = static_cast<SPUString *>(uhash_get(fHash, src));    if (hashedString != NULL) {        delete src;    } else {        hashedString = new SPUString(src);        uhash_put(fHash, src, hashedString, &status);        fVec->addElement(hashedString, status);    }    return hashedString;}
开发者ID:venkatarajasekhar,项目名称:Qt,代码行数:11,


示例15:

//// RBBISymbolTable::lookupNode      Given a key (a variable name), return the//                                  corresponding RBBI Node.  If there is no entry//                                  in the table for this name, return NULL.//RBBINode       *RBBISymbolTable::lookupNode(const UnicodeString &key) const{    RBBINode             *retNode = NULL;    RBBISymbolTableEntry *el;    el = (RBBISymbolTableEntry *)uhash_get(fHashTable, &key);    if (el != NULL) {        retNode = el->val;    }    return retNode;}
开发者ID:0x4d52,项目名称:JavaScriptCore-X,代码行数:16,


示例16: umtx_lock

void CollDataCache::unref(CollData *collData){    CollDataCacheEntry *entry = NULL;    umtx_lock(&lock);    entry = (CollDataCacheEntry *) uhash_get(cache, collData->key);    if (entry != NULL) {        entry->refCount -= 1;    }    umtx_unlock(&lock);}
开发者ID:Abocer,项目名称:android-4.2_r1,代码行数:12,


示例17: ulocimp_toLegacyKey

U_CFUNC const char*ulocimp_toLegacyKey(const char* key) {    if (!init()) {        return NULL;    }    LocExtKeyData* keyData = (LocExtKeyData*)uhash_get(gLocExtKeyMap, key);    if (keyData != NULL) {        return keyData->legacyId;    }    return NULL;}
开发者ID:MoonchildProductions,项目名称:Pale-Moon,代码行数:12,


示例18: initializeCanonicalMap

const CanonicalMapEntry* U_EXPORT2ZoneMeta::getCanonicalInfo(const UnicodeString &tzid) {    initializeCanonicalMap();    CanonicalMapEntry *entry = NULL;    if (gCanonicalMap != NULL) {        UErrorCode status = U_ZERO_ERROR;        UChar tzidUChars[ZID_KEY_MAX];        tzid.extract(tzidUChars, ZID_KEY_MAX, status);        if (U_SUCCESS(status) && status!=U_STRING_NOT_TERMINATED_WARNING) {            entry = (CanonicalMapEntry*)uhash_get(gCanonicalMap, tzidUChars);        }    }    return entry;}
开发者ID:Andproject,项目名称:platform_external_icu4c,代码行数:14,


示例19: initializeOlsonToMeta

const UVector* U_EXPORT2ZoneMeta::getMetazoneMappings(const UnicodeString &tzid) {    initializeOlsonToMeta();    const UVector *result = NULL;    if (gOlsonToMeta != NULL) {        UErrorCode status = U_ZERO_ERROR;        UChar tzidUChars[ZID_KEY_MAX];        tzid.extract(tzidUChars, ZID_KEY_MAX, status);        if (U_SUCCESS(status) && status!=U_STRING_NOT_TERMINATED_WARNING) {            result = (UVector*)uhash_get(gOlsonToMeta, tzidUChars);        }    }    return result;}
开发者ID:Andproject,项目名称:platform_external_icu4c,代码行数:14,


示例20: ucnv_getSharedConverterData

/* gets the shared data from the SHARED_DATA_HASHTABLE (might return NULL if it isn't there) * @param name The name of the shared data * @return the shared data from the SHARED_DATA_HASHTABLE */static UConverterSharedData *ucnv_getSharedConverterData(const char *name){    /*special case when no Table has yet been created we return NULL */    if (SHARED_DATA_HASHTABLE == NULL)    {        return NULL;    }    else    {        UConverterSharedData *rc;        rc = (UConverterSharedData*)uhash_get(SHARED_DATA_HASHTABLE, name);        UCNV_DEBUG_LOG("get",name,rc);        return rc;    }}
开发者ID:andrewleech,项目名称:firebird,代码行数:21,


示例21: createCDFUnit

// createCDFUnit returns a pointer to the prefix-suffix pair for a given// variant and log10 value within table. If no such prefix-suffix pair is// stored in table, one is created within table before returning pointer.static CDFUnit* createCDFUnit(const char* variant, int32_t log10Value, UHashtable* table, UErrorCode& status) {  if (U_FAILURE(status)) {    return NULL;  }  CDFUnit *cdfUnit = (CDFUnit*) uhash_get(table, variant);  if (cdfUnit == NULL) {    cdfUnit = new CDFUnit[MAX_DIGITS];    if (cdfUnit == NULL) {      status = U_MEMORY_ALLOCATION_ERROR;      return NULL;    }    uhash_put(table, uprv_strdup(variant), cdfUnit, &status);    if (U_FAILURE(status)) {      return NULL;    }  }  CDFUnit* result = &cdfUnit[log10Value];  return result;}
开发者ID:MoonchildProductions,项目名称:Pale-Moon,代码行数:22,


示例22: findBasename

static UDataMemory *udata_findCachedData(const char *path){    UHashtable        *htable;    UDataMemory       *retVal = NULL;    DataCacheElement  *el;    const char        *baseName;    baseName = findBasename(path);   /* Cache remembers only the base name, not the full path. */    htable = udata_getHashTable();    umtx_lock(NULL);    el = (DataCacheElement *)uhash_get(htable, baseName);    umtx_unlock(NULL);    if (el != NULL) {        retVal = el->item;    }#ifdef UDATA_DEBUG    fprintf(stderr, "Cache: [%s] -> %p/n", baseName, retVal);#endif    return retVal;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:20,



注:本文中的uhash_get函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ uhash_open函数代码示例
C++ uhash_close函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。