xref: /aosp_15_r20/external/icu/libicu/cts_headers/sharedpluralrules.h (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
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