summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/tools/tqcom_p.h
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-07-10 15:17:53 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-07-10 15:17:53 -0500
commitdda8474928bd7276e1fad8fb7a601e7c83ff2bc2 (patch)
tree7f83910598b33b12730035f086df20b5a53ab99c /tqtinterface/qt4/src/tools/tqcom_p.h
parent6260b6178868c03aab1644bf93b0ef043654bdb0 (diff)
downloadexperimental-dda8474928bd7276e1fad8fb7a601e7c83ff2bc2.tar.gz
experimental-dda8474928bd7276e1fad8fb7a601e7c83ff2bc2.zip
Added TQt4 HEAD
Diffstat (limited to 'tqtinterface/qt4/src/tools/tqcom_p.h')
-rw-r--r--tqtinterface/qt4/src/tools/tqcom_p.h344
1 files changed, 344 insertions, 0 deletions
diff --git a/tqtinterface/qt4/src/tools/tqcom_p.h b/tqtinterface/qt4/src/tools/tqcom_p.h
new file mode 100644
index 0000000..2d41781
--- /dev/null
+++ b/tqtinterface/qt4/src/tools/tqcom_p.h
@@ -0,0 +1,344 @@
+/****************************************************************************
+**
+** ...
+**
+** Copyright (C) 2001-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the tools module of the TQt GUI Toolkit.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free TQt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
+** included in the packaging of this file. Licensees holding valid TQt
+** Commercial licenses may use this file in accordance with the TQt
+** Commercial License Agreement provided with the Software.
+**
+** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
+** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+#ifndef TQCOM_P_H
+#define TQCOM_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the TQt API. It exists for the convenience
+// of a number of TQt sources files. This header file may change from
+// version to version without notice, or even be removed.
+//
+// We mean it.
+//
+//
+
+#ifndef TQT_H
+#include "tqstringlist.h"
+#include "tquuid.h"
+#endif // TQT_H
+
+#if __GNUC__ - 0 > 3
+#pragma GCC system_header
+#endif
+
+#ifndef TQT_NO_COMPONENT
+
+class TQObject;
+struct TQUInterfaceDescription;
+struct TQUObject;
+
+#define TQRESULT unsigned long
+#define TQS_OK (TQRESULT)0x00000000
+#define TQS_FALSE (TQRESULT)0x00000001
+
+#define TQE_NOTIMPL (TQRESULT)0x80000001
+#define TQE_OUTOFMEMORY (TQRESULT)0x80000002
+#define TQE_INVALIDARG (TQRESULT)0x80000003
+#define TQE_NOINTERFACE (TQRESULT)0x80000004
+#define TQE_NOCOMPONENT (TQRESULT)0x80000005
+
+
+// {1D8518CD-E8F5-4366-99E8-879FD7E482DE}
+#ifndef IID_TQUnknown
+#define IID_TQUnknown TQUuid(0x1d8518cd, 0xe8f5, 0x4366, 0x99, 0xe8, 0x87, 0x9f, 0xd7, 0xe4, 0x82, 0xde)
+#endif
+
+struct TQ_EXPORT TQUnknownInterface
+{
+ virtual TQRESULT queryInterface( const TQUuid&, TQUnknownInterface** ) = 0;
+ virtual ulong addRef() = 0;
+ virtual ulong release() = 0;
+};
+
+// {FBAC965E-A441-413F-935E-CDF582573FAB}
+#ifndef IID_TQDispatch
+#define IID_TQDispatch TQUuid( 0xfbac965e, 0xa441, 0x413f, 0x93, 0x5e, 0xcd, 0xf5, 0x82, 0x57, 0x3f, 0xab)
+#endif
+
+// the dispatch interface that inherits the unknown interface.. It is
+// used to explore interfaces during runtime and to do dynamic calls.
+struct TQ_EXPORT TQDispatchInterface : public TQUnknownInterface
+{
+ // returns the interface description of this dispatch interface.
+ virtual const TQUInterfaceDescription* interfaceDescription() const = 0;
+
+ // returns the event description of this dispatch interface.
+ virtual const TQUInterfaceDescription* eventsDescription() const = 0;
+
+ // invokes method id with parameters V*. Returns some sort of
+ // exception code.
+ virtual TQRESULT invoke( int id, TQUObject* o ) = 0;
+
+ // installs listener as event listener
+ virtual void installListener( TQDispatchInterface* listener ) = 0;
+
+ // remove listener as event listener
+ virtual void removeListener( TQDispatchInterface* listener ) = 0;
+};
+
+template <class T>
+class TQInterfacePtr
+{
+public:
+ TQInterfacePtr():iface(0){}
+
+ TQInterfacePtr( T* i) {
+ if ( (iface = i) )
+ iface->addRef();
+ }
+
+ TQInterfacePtr(const TQInterfacePtr<T> &p) {
+ if ( (iface = p.iface) )
+ iface->addRef();
+ }
+
+ ~TQInterfacePtr() {
+ if ( iface )
+ iface->release();
+ }
+
+ TQInterfacePtr<T> &operator=(const TQInterfacePtr<T> &p) {
+ if ( iface != p.iface ) {
+ if ( iface )
+ iface->release();
+ if ( (iface = p.iface) )
+ iface->addRef();
+ }
+ return *this;
+ }
+
+ TQInterfacePtr<T> &operator=(T* i) {
+ if (iface != i ) {
+ if ( iface )
+ iface->release();
+ if ( (iface = i) )
+ iface->addRef();
+ }
+ return *this;
+ }
+
+ bool operator==( const TQInterfacePtr<T> &p ) const { return iface == p.iface; }
+
+ bool operator!= ( const TQInterfacePtr<T>& p ) const { return !( *this == p ); }
+
+ bool isNull() const { return !iface; }
+
+ T* operator->() const { return iface; }
+
+ T& operator*() const { return *iface; }
+
+ operator T*() const { return iface; }
+
+ TQUnknownInterface** operator &() const {
+ if( iface )
+ iface->release();
+ return (TQUnknownInterface**)&iface;
+ }
+
+ T** operator &() {
+ if ( iface )
+ iface->release();
+ return &iface;
+ }
+
+private:
+ T* iface;
+};
+
+// {10A1501B-4C5F-4914-95DD-C400486CF900}
+#ifndef IID_TQObject
+#define IID_TQObject TQUuid( 0x10a1501b, 0x4c5f, 0x4914, 0x95, 0xdd, 0xc4, 0x00, 0x48, 0x6c, 0xf9, 0x00)
+#endif
+
+struct TQ_EXPORT TQObjectInterface
+{
+ virtual TQObject* qObject() = 0;
+};
+
+// {5F3968A5-F451-45b1-96FB-061AD98F926E}
+#ifndef IID_TQComponentInformation
+#define IID_TQComponentInformation TQUuid(0x5f3968a5, 0xf451, 0x45b1, 0x96, 0xfb, 0x6, 0x1a, 0xd9, 0x8f, 0x92, 0x6e)
+#endif
+
+struct TQ_EXPORT TQComponentInformationInterface : public TQUnknownInterface
+{
+ virtual TQString name() const = 0;
+ virtual TQString description() const = 0;
+ virtual TQString author() const = 0;
+ virtual TQString version() const = 0;
+};
+
+// {6CAA771B-17BB-4988-9E78-BA5CDDAAC31E}
+#ifndef IID_TQComponentFactory
+#define IID_TQComponentFactory TQUuid( 0x6caa771b, 0x17bb, 0x4988, 0x9e, 0x78, 0xba, 0x5c, 0xdd, 0xaa, 0xc3, 0x1e)
+#endif
+
+struct TQ_EXPORT TQComponentFactoryInterface : public TQUnknownInterface
+{
+ virtual TQRESULT createInstance( const TQUuid &cid, const TQUuid &iid, TQUnknownInterface** instance, TQUnknownInterface *outer ) = 0;
+};
+
+// {D16111D4-E1E7-4C47-8599-24483DAE2E07}
+#ifndef IID_TQLibrary
+#define IID_TQLibrary TQUuid( 0xd16111d4, 0xe1e7, 0x4c47, 0x85, 0x99, 0x24, 0x48, 0x3d, 0xae, 0x2e, 0x07)
+#endif
+
+struct TQ_EXPORT TQLibraryInterface : public TQUnknownInterface
+{
+ virtual bool init() = 0;
+ virtual void cleanup() = 0;
+ virtual bool canUnload() const = 0;
+};
+
+// {3F8FDC44-3015-4f3e-B6D6-E4AAAABDEAAD}
+#ifndef IID_TQFeatureList
+#define IID_TQFeatureList TQUuid(0x3f8fdc44, 0x3015, 0x4f3e, 0xb6, 0xd6, 0xe4, 0xaa, 0xaa, 0xbd, 0xea, 0xad)
+#endif
+
+struct TQ_EXPORT TQFeatureListInterface : public TQUnknownInterface
+{
+ virtual TQStringList featureList() const = 0;
+};
+
+// {B5FEB5DE-E0CD-4E37-B0EB-8A812499A0C1}
+#ifndef IID_TQComponentRegistration
+#define IID_TQComponentRegistration TQUuid( 0xb5feb5de, 0xe0cd, 0x4e37, 0xb0, 0xeb, 0x8a, 0x81, 0x24, 0x99, 0xa0, 0xc1)
+#endif
+
+struct TQ_EXPORT TQComponentRegistrationInterface : public TQUnknownInterface
+{
+ virtual bool registerComponents( const TQString &filepath ) const = 0;
+ virtual bool unregisterComponents() const = 0;
+};
+
+// internal class that wraps an initialized ulong
+struct TQ_EXPORT TQtULong
+{
+ TQtULong() : ref( 0 ) { }
+ operator unsigned long () const { return ref; }
+ unsigned long& operator++() { return ++ref; }
+ unsigned long operator++( int ) { return ref++; }
+ unsigned long& operator--() { return --ref; }
+ unsigned long operator--( int ) { return ref--; }
+
+ unsigned long ref;
+};
+// default implementation of ref counting. A variable "ulong ref" has to be a member
+
+
+#define TQ_REFCOUNT \
+private: \
+ TQtULong qtrefcount; \
+public: \
+ ulong addRef() {return qtrefcount++;} \
+ ulong release() {if(!--qtrefcount){delete this;return 0;}return qtrefcount;}
+
+#ifndef TQ_EXPORT_COMPONENT
+#if defined(TQT_THREAD_SUPPORT)
+#define TQT_THREADED_BUILD 1
+#define TQ_UCM_FLAGS_STRING "11"
+#else
+#define TQT_THREADED_BUILD 0
+#define TQ_UCM_FLAGS_STRING "01"
+#endif
+
+#ifndef TQ_EXTERN_C
+#ifdef __cplusplus
+#define TQ_EXTERN_C extern "C"
+#else
+#define TQ_EXTERN_C extern
+#endif
+#endif
+
+// this is duplicated at TQ_PLUGIN_VERIFICATION_DATA in tqgplugin.h
+// NOTE: if you change pattern, you MUST change the pattern in
+// qcomlibrary.cpp as well. changing the pattern will break all
+// backwards compatibility as well (no old plugins will be loaded).
+#ifndef TQ_UCM_VERIFICATION_DATA
+# define TQ_UCM_VERIFICATION_DATA \
+ static const char *qt_ucm_verification_data = \
+ "pattern=""TQT_UCM_VERIFICATION_DATA""\n" \
+ "version="TQT_VERSION_STR"\n" \
+ "flags="TQ_UCM_FLAGS_STRING"\n" \
+ "buildkey="TQT_BUILD_KEY"\0";
+#endif // TQ_UCM_VERIFICATION_DATA
+
+// This macro expands to the default implementation of ucm_instantiate.
+#ifndef TQ_CREATE_INSTANCE
+# define TQ_CREATE_INSTANCE( IMPLEMENTATION ) \
+ IMPLEMENTATION *i = new IMPLEMENTATION; \
+ TQUnknownInterface* iface = 0; \
+ i->queryInterface( IID_TQUnknown, &iface ); \
+ return iface;
+#endif // TQ_CREATE_INSTANCE
+
+# ifdef TQ_WS_WIN
+# ifdef TQ_CC_BOR
+# define TQ_EXPORT_COMPONENT() \
+ TQ_UCM_VERIFICATION_DATA \
+ TQ_EXTERN_C __declspec(dllexport) \
+ const char * __stdcall qt_ucm_query_verification_data() \
+ { return qt_ucm_verification_data; } \
+ TQ_EXTERN_C __declspec(dllexport) TQUnknownInterface* \
+ __stdcall ucm_instantiate()
+# else
+# define TQ_EXPORT_COMPONENT() \
+ TQ_UCM_VERIFICATION_DATA \
+ TQ_EXTERN_C __declspec(dllexport) \
+ const char *qt_ucm_query_verification_data() \
+ { return qt_ucm_verification_data; } \
+ TQ_EXTERN_C __declspec(dllexport) TQUnknownInterface* ucm_instantiate()
+# endif
+# else
+# define TQ_EXPORT_COMPONENT() \
+ TQ_UCM_VERIFICATION_DATA \
+ TQ_EXTERN_C \
+ const char *qt_ucm_query_verification_data() \
+ { return qt_ucm_verification_data; } \
+ TQ_EXTERN_C TQUnknownInterface* ucm_instantiate()
+# endif
+# define TQ_EXPORT_INTERFACE() TQ_EXPORT_COMPONENT()
+#endif
+
+#endif //TQT_NO_COMPONENT
+
+#endif //TQCOM_P_H