1*0e209d39SAndroid Build Coastguard Worker // © 2016 and later: Unicode, Inc. and others. 2*0e209d39SAndroid Build Coastguard Worker // License & terms of use: http://www.unicode.org/copyright.html 3*0e209d39SAndroid Build Coastguard Worker /* 4*0e209d39SAndroid Build Coastguard Worker ****************************************************************************** 5*0e209d39SAndroid Build Coastguard Worker * Copyright (C) 2014, International Business Machines 6*0e209d39SAndroid Build Coastguard Worker * Corporation and others. All Rights Reserved. 7*0e209d39SAndroid Build Coastguard Worker ****************************************************************************** 8*0e209d39SAndroid Build Coastguard Worker * sharedpluralrules.h 9*0e209d39SAndroid Build Coastguard Worker */ 10*0e209d39SAndroid Build Coastguard Worker 11*0e209d39SAndroid Build Coastguard Worker #ifndef __SHARED_PLURALRULES_H__ 12*0e209d39SAndroid Build Coastguard Worker #define __SHARED_PLURALRULES_H__ 13*0e209d39SAndroid Build Coastguard Worker 14*0e209d39SAndroid Build Coastguard Worker #include "unicode/utypes.h" 15*0e209d39SAndroid Build Coastguard Worker #include "sharedobject.h" 16*0e209d39SAndroid Build Coastguard Worker #include "unifiedcache.h" 17*0e209d39SAndroid Build Coastguard Worker 18*0e209d39SAndroid Build Coastguard Worker U_NAMESPACE_BEGIN 19*0e209d39SAndroid Build Coastguard Worker 20*0e209d39SAndroid Build Coastguard Worker class PluralRules; 21*0e209d39SAndroid Build Coastguard Worker 22*0e209d39SAndroid Build Coastguard Worker class U_I18N_API SharedPluralRules : public SharedObject { 23*0e209d39SAndroid Build Coastguard Worker public: SharedPluralRules(PluralRules * prToAdopt)24*0e209d39SAndroid Build Coastguard Worker SharedPluralRules(PluralRules *prToAdopt) : ptr(prToAdopt) { } 25*0e209d39SAndroid Build Coastguard Worker virtual ~SharedPluralRules(); 26*0e209d39SAndroid Build Coastguard Worker const PluralRules *operator->() const { return ptr; } 27*0e209d39SAndroid Build Coastguard Worker const PluralRules &operator*() const { return *ptr; } 28*0e209d39SAndroid Build Coastguard Worker private: 29*0e209d39SAndroid Build Coastguard Worker PluralRules *ptr; 30*0e209d39SAndroid Build Coastguard Worker SharedPluralRules(const SharedPluralRules &) = delete; 31*0e209d39SAndroid Build Coastguard Worker SharedPluralRules &operator=(const SharedPluralRules &) =delete; 32*0e209d39SAndroid Build Coastguard Worker }; 33*0e209d39SAndroid Build Coastguard Worker 34*0e209d39SAndroid Build Coastguard Worker template<> U_I18N_API 35*0e209d39SAndroid Build Coastguard Worker const SharedPluralRules *LocaleCacheKey<SharedPluralRules>::createObject( 36*0e209d39SAndroid Build Coastguard Worker const void * /*unused*/, UErrorCode &status) const; 37*0e209d39SAndroid Build Coastguard Worker 38*0e209d39SAndroid Build Coastguard Worker U_NAMESPACE_END 39*0e209d39SAndroid Build Coastguard Worker 40*0e209d39SAndroid Build Coastguard Worker #endif 41