// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2015-2016, International Business Machines * Corporation and others. All Rights Reserved. ****************************************************************************** * sharedobject.h */ #ifndef __SHAREDOBJECT_H__ #define __SHAREDOBJECT_H__ #include "unicode/uobject.h" #include "umutex.h" U_NAMESPACE_BEGIN class SharedObject; /** * Base class for unified cache exposing enough methods to SharedObject * instances to allow their addRef() and removeRef() methods to * update cache metrics. No other part of ICU, except for SharedObject, * should directly call the methods of this base class. */ class U_COMMON_API UnifiedCacheBase : public UObject { … }; /** * Base class for shared, reference-counted, auto-deleted objects. * Subclasses can be immutable. * If they are mutable, then they must implement their copy constructor * so that copyOnWrite() works. * * Either stack-allocate, use LocalPointer, or use addRef()/removeRef(). * Sharing requires reference-counting. */ class U_COMMON_API SharedObject : public UObject { … }; U_NAMESPACE_END #endif