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