--- /dev/null
+/*
+******************************************************************************
+* Copyright (C) 2014, International Business Machines
+* Corporation and others. All Rights Reserved.
+******************************************************************************
+* sharedobject.cpp
+*/
+#include "sharedobject.h"
+
+U_NAMESPACE_BEGIN
+SharedObject::~SharedObject() {}
+
+void
+SharedObject::addRef() const {
+ umtx_atomic_inc(&refCount);
+}
+
+void
+SharedObject::removeRef() const {
+ if(umtx_atomic_dec(&refCount) == 0) {
+ delete this;
+ }
+}
+
+int32_t
+SharedObject::getRefCount() const {
+ return umtx_loadAcquire(refCount);
+}
+
+void
+SharedObject::deleteIfZeroRefCount() const {
+ if(getRefCount() == 0) {
+ delete this;
+ }
+}
+
+U_NAMESPACE_END