summaryrefslogtreecommitdiff
path: root/ext/Log4Qt/src/helpers/logobject.h
diff options
context:
space:
mode:
authorTomasz Sterna <tomek@xiaoka.com>2014-07-14 17:19:45 +0200
committerTomasz Sterna <tomek@xiaoka.com>2014-07-16 00:07:28 +0200
commit3c19406ee292e0ed7993bd4d3976cc34d40e2f22 (patch)
tree67d185e95d647e56c074f4b3a30ac4f0d81e2ee6 /ext/Log4Qt/src/helpers/logobject.h
parent630cc2e3097f2236a4c1191be6c955ec523d6f1a (diff)
Replaced ext/Log4Qt source with submodule
Diffstat (limited to 'ext/Log4Qt/src/helpers/logobject.h')
-rwxr-xr-xext/Log4Qt/src/helpers/logobject.h219
1 files changed, 0 insertions, 219 deletions
diff --git a/ext/Log4Qt/src/helpers/logobject.h b/ext/Log4Qt/src/helpers/logobject.h
deleted file mode 100755
index ab8d964..0000000
--- a/ext/Log4Qt/src/helpers/logobject.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/******************************************************************************
- *
- * package: Log4Qt
- * file: logobject.h
- * created: September 2007
- * author: Martin Heinrich
- *
- *
- * changes: Sep 2008, Martin Heinrich:
- * - Replaced usage of q_atomic_increment and q_atomic_decrement
- * with QAtomicInt.
- * Feb 2009, Martin Heinrich
- * - Fixed a problem where the pParent parameter of the constructor
- * was not passed on to the QObject constructor
- *
- *
- * Copyright 2007 - 2009 Martin Heinrich
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ******************************************************************************/
-
-#ifndef LOG4QT_LOGOBJECT_H
-#define LOG4QT_LOGOBJECT_H
-
-#include "../log4qtshared.h"
-/******************************************************************************
- * Dependencies
- ******************************************************************************/
-
-#include <QtCore/QObject>
-
-#include "classlogger.h"
-#if QT_VERSION >= QT_VERSION_CHECK(4, 4, 0)
-# include <QtCore/QAtomicInt>
-# ifndef Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
-# warning "QAtomicInt reference counting is not native. The class Log4Qt::LogObject is not thread-safe."
-# endif
-#endif
-
-
-namespace Log4Qt
-{
-
- class Logger;
-
- /*!
- * \brief The class LogObject is the common base class for many classes
- * in the package.
- *
- * The class inherits QObject to allow its subclass to be accessed using
- * the Qt property system.
- *
- * LogObject objects provide a reference counter. A reference to the
- * object is established by calling retain() and freed by calling
- * release(). The object will delete itself when the reference counter
- * is decremented to 0.
- *
- * A class specific logger can be accessed over logger().
- *
- * The class also implements generic streaming to QDebug. Streaming an
- * object to QDebug will invoke debug() to create class specific output.
- *
- * \note All the functions declared in this class are thread-safe.
- *
- * \sa \ref Ownership "Object ownership",
- * LOG4QT_DECLARE_QCLASS_LOGGER
- */
- class LOG4QT_EXPORT LogObject : public QObject
- {
- Q_OBJECT
-
- public:
- /*!
- * Creates a LogObject which is a child of \a pObject.
- */
- LogObject(QObject *pObject = 0);
-
- /*!
- * Destroys the LogObject.
- */
- virtual ~LogObject();
-
- private:
- LogObject(const LogObject &rOther); // Not implemented
- LogObject &operator=(const LogObject &rOther); // Not implemented
-
- public:
- /*!
- * Returns the value of the reference counter.
- */
- int referenceCount() const;
-
- /*!
- * Decrements the reference count of the object. If the reference count
- * count reaches zero and the object does not have a parent the object
- * is deleted.
- */
- void release();
-
- /*!
- * Increments the reference count of the object.
- */
- void retain();
-
- protected:
- #ifndef QT_NO_DEBUG_STREAM
- /*!
- * Writes all object member variables to the given debug stream
- * \a rDebug and returns the stream.
- *
- * The member function is used by
- * QDebug operator<<(QDebug debug, const LogObject &rLogObject) to
- * generate class specific output.
- *
- * \sa QDebug operator<<(QDebug debug, const LogObject &rLogObject)
- */
- virtual QDebug debug(QDebug &rDebug) const = 0;
-
- // Needs to be friend to access internal data
- friend QDebug operator<<(QDebug debug,
- const LogObject &rLogObject);
- #endif // QT_NO_DEBUG_STREAM
-
- /*!
- * Returns a pointer to a Logger named after of the object.
- *
- * \sa Logger::logger(const char *pName)
- */
- Logger* logger() const;
-
- private:
-#if QT_VERSION < QT_VERSION_CHECK(4, 4, 0)
- volatile int mReferenceCount;
-#else
- mutable QAtomicInt mReferenceCount;
-#endif
- mutable ClassLogger mLog4QtClassLogger;
- };
-
-
- /**************************************************************************
- * Operators, Helper
- **************************************************************************/
-
- #ifndef QT_NO_DEBUG_STREAM
- /*!
- * \relates LogObject
- *
- * Writes all object member variables to the given debug stream \a debug
- * and returns the stream.
- *
- * To handle sub-classing the function uses the virtual member function
- * debug(). This allows each class to generate its own output.
- *
- * \sa QDebug, debug()
- */
- QDebug operator<<(QDebug debug,
- const LogObject &rLogObject);
- #endif
-
-
- /**************************************************************************
- * Inline
- **************************************************************************/
-
- inline LogObject::LogObject(QObject *pParent) :
- QObject(pParent),
- mReferenceCount()
- {}
-
- inline LogObject::~LogObject()
- {}
-
- inline int LogObject::referenceCount() const
- {
-#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
- return mReferenceCount;
-#else
- return mReferenceCount.loadAcquire();
-#endif
- }
-
- inline void LogObject::release()
-#if QT_VERSION < QT_VERSION_CHECK(4, 4, 0)
- { if ((q_atomic_decrement(&mReferenceCount) == 0) && !parent())
- delete(this); }
-#else
- { if (!mReferenceCount.deref())
- delete(this); }
-#endif
-
- inline void LogObject::retain()
-#if QT_VERSION < QT_VERSION_CHECK(4, 4, 0)
- { q_atomic_increment(&mReferenceCount); }
-#else
- { mReferenceCount.ref(); }
-#endif
-
- inline Logger *LogObject::logger() const
- { return mLog4QtClassLogger.logger(this); }
-
-} // namespace Log4Qt
-
-
-// Q_DECLARE_TYPEINFO(Log4Qt::LogObject, Q_COMPLEX_TYPE); // Use default
-
-
-#endif // LOG4QT_LOGOBJECT_H