Parent Directory | Revision Log
Links to HEAD: | (view) (download) (as text) (annotate) |
Sticky Revision: |
Use std::atomic for CObject reference counter. Use atomic for in-heap detection TLS container. JIRA: OMDM-5
Optimize in favor of assignment of non-empty refs. JIRA: CXX-11368
Optimized move operator for CRef to different types. JIRA: CXX-11368
Added move constructors and assignments. JIRA: CXX-11368
Added namespace qualifier. JIRA: CXX-11159
Move NCBI_NORETURN to before NCBI_*_EXPORT. JIRA: CXX-10943.
Reorder attribute specifiers to silence warnings JIRA: CXX-10943
Cosmetics
Push forward with override declarations within corelib exceptions. Now that the standard exception-related macros inject some methods declared with "override", some Clang versions issue warnings for classes that use these macros but don't specify "override" for their other overrides. Use "override" throughout exception classes declared within corelib headers, many of which are widely included.
Corrected copy constructors. JIRA: CXX-5683
Added CIRef copy constructors and assignment operators to allow implicit conversion from derived to base type. JIRA: CXX-5683
Fixed compilation. JIRA: CXX-5683
Tuneups. JIRA: CXX-5683
Added CRef copy constructors and assignment operators to allow implicit conversion from derived to base type. JIRA: CXX-5683
Removed redundant default constructor. JIRA: CXX-8325
Added user-defined constructors for CObjectFor<>. JIRA: CXX-8325
Guard against self-move-assignment on MSVC (not allowed by Standard).
Implement move constructor and assignment without using Swap().
Define C++11 move constructors.
Added 64-bit atomic counter where possible - currently GCC/ICC/MSVC on Interl x64. Moved non API CObject counter constant from header to cpp. Added comments. JIRA: CXX-5828
Use ERR_FATAL macro for correct no-return info. JIRA: CXX-5700
Added CNullable template. Converted number of retries to CNullable. Added g_HttpGet and g_HttpPost. JIRA CXX-4501
In-heap CObject detection via TLS variable. JIRA: CXX-1808
Avoid unused arguments warnings.
Added missing method necessary for CIRef::Swap().
+typeinfo
Reduce dependencies
Added description of lock/unlock monitoring methods. JIRA: CXX-492.
Added CObjectCounterLocker::TransferLock() and updated CRef<>::Swap() to support MonitorObjectType(). JIRA: CXX-492
Added CObjectCounterLocker::MonitorObjectType(). JIRA: CXX-492
Removed constness from CObject::DeleteThis() as all of its implementations are meant to change the object. JIRA: CXX-1979
CWeakIRef<>::Lock: explicitly qualify base member references with this-> for compatibility with GCC 4.x.
CWeakIRef::Lock to return more intuitively understandable class CIRef instead of CRef.
Introducing CWeakObject class. (JIRA: CXX-1758)
Reformat code in accordance with NORETURN attribute. JIRA: CXX-1647
Added NORETURN attribute to some functions. JIRA: CXX-1647
Fix bug of throwing incorrect exception.
Adjust for Windows DLL build.
Fix compilation errors.
- Make possible for CObject-derived classes to be not deleted after removing last reference. - Fix for CWeakRef to allow CObjectEx to exist after last reference is removed. NOJIRA
For CWeakRef: add missing comparison operators and remove unnecessary function.
Add test for CWeakRef<> and CWeakIRef<> classes. Fix implementation errors found. JIRA: CXX-497
Make static function real static. JIRA: CXX-497
Change CWeakRef<> and CWeakIRef<> to be completely policy-driven as CRef and CIRef siblings. JIRA: CXX-497
Introduce class CObjectEx and templates CWeakRef<> and CWeakIRef<> for weak referencing to objects. JIRA: CXX-497
Disable type information until build problem are fixed.
Added pointer type information to null pointer exception.
Memory filling in CObject::operator new() now is optional.
Fixed order Lock() before Unlock() to avoid accidenatal delete. Do not store anything in CObjectCounterLocker as it is not thread-safe.
Reduce dependencies
Fixed svn properties in trunk/c++.
CVS $Log$ keyword clean-up: everything except "internal".
Default for CRef is generalized, prepared for weak reference implementation
Moved GetErrorCodeString method into cpp
ObjectStateUnreferenced, ObjectStateReferencedOnlyOnce: Ensure that both sides of == have the same signedness to avoid false negatives under VisualAge.
Fixed order of locking and unlocking in CRef assignment.
Removed constness from interface locker methods.
Implemented templates CIRef and CIConstRef.
Fixed type in CRef<>::ReleaseOrNull().
Add reference to new object _before_ removing reference to old object in Reset.
Changed CRef<> and CConstRef<> to use second template argument for locking. Store locking object in CRef<>/CConstRef<> using pair_base_member. Moved CObject inline methods from ncbiobj.inl to ncbiobj.hpp. Added set of CRef::GetNC*() const methods to allow getting non-const pointer.
Allow allocation of CObjects from CObjectMemoryPool. Documented CObject counter bits.
Update comments to reflect change in bit usage of counter.
DoDeleteThisObject() fails for objects not in heap.
Added Swap method and std::swap functions for CRef and CConstRef classes
Safe boolean operators.
Removed operator bool(). Pointer conversion will be used instead.
Added conditional includ eof ncbi_os_mswin.hpp to work around Win32's definitions of GetObject(), which clash with CRef<>::GetObject()
Added atomic release and reset to CRef.
Added/Removed NCBI_XNCBI_EXPORT prefixes.
Removed NCBI_XNCBI_EXPORT prefix for classes members-functions that are implemented as a inline functions.
Added CORELIB___ prefix in conditional includes.
CConstRef::AtomicSwap: use reinterpret_cast rather than static_cast to placate MIPSpro.
Added Ref() and ConstRef() templated functions for getting CRef<> objects.
Moved atomic counter swap functions to separate file. Added CRef<>::AtomicResetFrom(), CRef<>::AtomicReleaseTo() methods.
Minor comment changes.
Added documentation. Change private method name from AddReferenceOverflow() to a more meaningful name of its purpose, CheckReferenceOverflow().
Added matching operator delete.
Added inplace operator new().
Rollback to R1.43, as R1.44 created another, more problematic warning -- that "operator T*()" would be chosen over "operator bool()" for non-const
Remove seemingly useless non-const versions of C[Const]Ref::operator bool()
Added doxygen support
Added export specifier for building DLLs in windows. Added global list of all such specifiers in mswin_exports.hpp, included through ncbistl.hpp
Added CObject::ThrowNullPointerException to get around some inlining issues. Fixed a few returns (m_Ptr -> ptr).
Added more explicit error reporting for thrown exceptions.
CConstRef<> constructor made explicit
Made CRef<> constructor explicit, const CRef<> getters return const references/pointers.
Safe initialization of static mutexes
Remove virtual inheritance, fixed heap detection
renamed CNcbiException and its descendents
exceptions replaced by CNcbiException-type ones
more unsigned ints in EObjectState flags
changed eStateBitsValid to "unsigned int" to make some compilers happy
Use low-level atomic operations for reference counts
added DebugDump base class and function to CObject
DebugDump moved into a separate class
added DebugDump function to CObject
CVS log moved to end of the file
Added operator> for C(Const)Ref -- for ICC and MIPSpro
Added: null special value, support for null in CRef classes, equality operators.
Added operators == and != for C(Const)Ref
Typos corrected
Minor cosmetics
Made "CObject" MT-safe + CObject::DoDeleteThisObject()
Added "operator<" for CRef:: and CConstRef:: to make them useable as keys in the stnadard C++ associative containers (set, map, ...)
CRef:: Release, Reset -- reset m_Ptr BEFORE removing the reference
CRef<> returns non const object.
Added assignment operator for CRef<> and CConstRef<>
Added header corelib/ncbistr.hpp for all string utility functions. Optimized string utility functions. Added assignment operator to CRef<> and CConstRef<>. Add Upcase() and Locase() methods for automatic conversion.
Added operator bool to CArgValue. Added standard typedef element_type to CRef<> and CConstRef<>. Macro iterate() now calls method end() only once and uses temporary variable. Various NStr::Compare() methods made faster. Added class Upcase for printing strings to ostream with automatic conversion.
Fixed detection of heap objects. Removed ECanDelete enum and related constructors.
Added heuristic for detection of CObject allocation in heap.
Fixed throw() declaration in CRef/CConstRef
Changed refernce counter to allow detection of more errors.
Added SetCanDelete() method to allow to change CObject 'in heap' status immediately after creation.
Removed unneeded THROWS declaration - they lead to encreased code size.
CObject::GetTypeInfo now moved to CObjectGetTypeInfo::GetTypeInfo to reduce possible errors.
Fixed implementation of CRef<> and CConstRef<>
moved ECanDelete to public area of CObject
Added const version of CRef - CConstRef. CRef and CConstRef now accept classes inherited from CObject.
Added CRef<>::GetPointerOrNull() method similar to std::auto_ptr<>.get()
Fixed throws instructions.
Fixed implementation of CRef::->
Added CObject class as base for reference counted objects. Added CRef templace for reference to CObject descendant.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
NCBI Systems Team">NCBI Systems Team | ViewVC Help |
Powered by ViewVC 1.1.20 |