summaryrefslogtreecommitdiff
path: root/indra/llcorehttp/_refcounted.h
diff options
context:
space:
mode:
authorAnsariel <ansariel.hiller@phoenixviewer.com>2024-05-22 19:04:52 +0200
committerAnsariel <ansariel.hiller@phoenixviewer.com>2024-05-22 19:04:52 +0200
commit1b67dd855c41f5a0cda7ec2a68d98071986ca703 (patch)
treeab243607f74f78200787bba5b9b88f07ef1b966f /indra/llcorehttp/_refcounted.h
parent6d6eabca44d08d5b97bfe3e941d2b9687c2246ea (diff)
parente1623bb276f83a43ce7a197e388720c05bdefe61 (diff)
Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts: # autobuild.xml # indra/cmake/CMakeLists.txt # indra/cmake/GoogleMock.cmake # indra/llaudio/llaudioengine_fmodstudio.cpp # indra/llaudio/llaudioengine_fmodstudio.h # indra/llaudio/lllistener_fmodstudio.cpp # indra/llaudio/lllistener_fmodstudio.h # indra/llaudio/llstreamingaudio_fmodstudio.cpp # indra/llaudio/llstreamingaudio_fmodstudio.h # indra/llcharacter/llmultigesture.cpp # indra/llcharacter/llmultigesture.h # indra/llimage/llimage.cpp # indra/llimage/llimagepng.cpp # indra/llimage/llimageworker.cpp # indra/llimage/tests/llimageworker_test.cpp # indra/llmessage/tests/llmockhttpclient.h # indra/llprimitive/llgltfmaterial.h # indra/llrender/llfontfreetype.cpp # indra/llui/llcombobox.cpp # indra/llui/llfolderview.cpp # indra/llui/llfolderviewmodel.h # indra/llui/lllineeditor.cpp # indra/llui/lllineeditor.h # indra/llui/lltextbase.cpp # indra/llui/lltextbase.h # indra/llui/lltexteditor.cpp # indra/llui/lltextvalidate.cpp # indra/llui/lltextvalidate.h # indra/llui/lluictrl.h # indra/llui/llview.cpp # indra/llwindow/llwindowmacosx.cpp # indra/newview/app_settings/settings.xml # indra/newview/llappearancemgr.cpp # indra/newview/llappearancemgr.h # indra/newview/llavatarpropertiesprocessor.cpp # indra/newview/llavatarpropertiesprocessor.h # indra/newview/llbreadcrumbview.cpp # indra/newview/llbreadcrumbview.h # indra/newview/llbreastmotion.cpp # indra/newview/llbreastmotion.h # indra/newview/llconversationmodel.h # indra/newview/lldensityctrl.cpp # indra/newview/lldensityctrl.h # indra/newview/llface.inl # indra/newview/llfloatereditsky.cpp # indra/newview/llfloatereditwater.cpp # indra/newview/llfloateremojipicker.h # indra/newview/llfloaterimsessiontab.cpp # indra/newview/llfloaterprofiletexture.cpp # indra/newview/llfloaterprofiletexture.h # indra/newview/llgesturemgr.cpp # indra/newview/llgesturemgr.h # indra/newview/llimpanel.cpp # indra/newview/llimpanel.h # indra/newview/llinventorybridge.cpp # indra/newview/llinventorybridge.h # indra/newview/llinventoryclipboard.cpp # indra/newview/llinventoryclipboard.h # indra/newview/llinventoryfunctions.cpp # indra/newview/llinventoryfunctions.h # indra/newview/llinventorygallery.cpp # indra/newview/lllistbrowser.cpp # indra/newview/lllistbrowser.h # indra/newview/llpanelobjectinventory.cpp # indra/newview/llpanelprofile.cpp # indra/newview/llpanelprofile.h # indra/newview/llpreviewgesture.cpp # indra/newview/llsavedsettingsglue.cpp # indra/newview/llsavedsettingsglue.h # indra/newview/lltooldraganddrop.cpp # indra/newview/llurllineeditorctrl.cpp # indra/newview/llvectorperfoptions.cpp # indra/newview/llvectorperfoptions.h # indra/newview/llviewerparceloverlay.cpp # indra/newview/llviewertexlayer.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/macmain.h # indra/test/test.cpp
Diffstat (limited to 'indra/llcorehttp/_refcounted.h')
-rw-r--r--indra/llcorehttp/_refcounted.h100
1 files changed, 50 insertions, 50 deletions
diff --git a/indra/llcorehttp/_refcounted.h b/indra/llcorehttp/_refcounted.h
index 5cc8914395..7470965a7f 100644
--- a/indra/llcorehttp/_refcounted.h
+++ b/indra/llcorehttp/_refcounted.h
@@ -1,4 +1,4 @@
-/**
+/**
* @file _refcounted.h
* @brief Atomic, thread-safe ref counting and destruction mixin class
*
@@ -44,81 +44,81 @@ namespace LLCoreInt
class RefCounted
{
private:
- RefCounted(); // Not defined - may not be default constructed
- void operator=(const RefCounted &); // Not defined
-
+ RefCounted(); // Not defined - may not be default constructed
+ void operator=(const RefCounted &); // Not defined
+
public:
- explicit RefCounted(bool const implicit)
- : mRefCount(implicit)
- {}
-
- // ref-count interface
- void addRef() const;
- void release() const;
- bool isLastRef() const;
- S32 getRefCount() const;
- void noRef() const;
-
- static const S32 NOT_REF_COUNTED = -1;
-
+ explicit RefCounted(bool const implicit)
+ : mRefCount(implicit)
+ {}
+
+ // ref-count interface
+ void addRef() const;
+ void release() const;
+ bool isLastRef() const;
+ S32 getRefCount() const;
+ void noRef() const;
+
+ static const S32 NOT_REF_COUNTED = -1;
+
protected:
- virtual ~RefCounted();
- virtual void destroySelf();
+ virtual ~RefCounted();
+ virtual void destroySelf();
private:
- mutable LLAtomicS32 mRefCount;
+ mutable LLAtomicS32 mRefCount;
}; // end class RefCounted
inline void RefCounted::addRef() const
{
- S32 count(++mRefCount);
- llassert_always(count >= 0);
+ S32 count(++mRefCount);
+ llassert_always(count >= 0);
}
inline void RefCounted::release() const
{
- S32 count(mRefCount);
- llassert_always(count != NOT_REF_COUNTED);
- llassert_always(count > 0);
- count = --mRefCount;
-
- // clean ourselves up if that was the last reference
- if (0 == count)
- {
- const_cast<RefCounted *>(this)->destroySelf();
- }
+ S32 count(mRefCount);
+ llassert_always(count != NOT_REF_COUNTED);
+ llassert_always(count > 0);
+ count = --mRefCount;
+
+ // clean ourselves up if that was the last reference
+ if (0 == count)
+ {
+ const_cast<RefCounted *>(this)->destroySelf();
+ }
}
inline bool RefCounted::isLastRef() const
{
- const S32 count(mRefCount);
- llassert_always(count != NOT_REF_COUNTED);
- llassert_always(count >= 1);
- return (1 == count);
+ const S32 count(mRefCount);
+ llassert_always(count != NOT_REF_COUNTED);
+ llassert_always(count >= 1);
+ return (1 == count);
}
inline S32 RefCounted::getRefCount() const
{
- const S32 result(mRefCount);
- return result;
+ const S32 result(mRefCount);
+ return result;
}
inline void RefCounted::noRef() const
{
- llassert_always(mRefCount <= 1);
- mRefCount = NOT_REF_COUNTED;
+ llassert_always(mRefCount <= 1);
+ mRefCount = NOT_REF_COUNTED;
}
inline void RefCounted::destroySelf()
{
- delete this;
+ delete this;
}
/**
@@ -131,26 +131,26 @@ inline void RefCounted::destroySelf()
template <typename T>
struct IntrusivePtr: public boost::intrusive_ptr<T>
{
- IntrusivePtr():
- boost::intrusive_ptr<T>()
- {}
- IntrusivePtr(T* p):
- boost::intrusive_ptr<T>(p, false)
- {}
+ IntrusivePtr():
+ boost::intrusive_ptr<T>()
+ {}
+ IntrusivePtr(T* p):
+ boost::intrusive_ptr<T>(p, false)
+ {}
};
inline void intrusive_ptr_add_ref(RefCounted* p)
{
- p->addRef();
+ p->addRef();
}
inline void intrusive_ptr_release(RefCounted* p)
{
- p->release();
+ p->release();
}
} // end namespace LLCoreInt
-#endif // LLCOREINT__REFCOUNTED_H_
+#endif // LLCOREINT__REFCOUNTED_H_