Qt.h

Go to the documentation of this file.
00001 /*
00002 
00003 Copyright (C) 2005-2007 by Peter Dimov.
00004 
00005 This file is part of Calitko (http://www.calitko.org).
00006 
00007 Calitko is free software; you can redistribute it and/or modify
00008 it under the terms of the GNU General Public License as published by
00009 the Free Software Foundation; either version 2 of the License, or
00010 (at your option) any later version.
00011 
00012 Calitko is distributed in the hope that it will be useful,
00013 but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 GNU General Public License for more details.
00016 
00017 You should have received a copy of the GNU General Public License
00018 along with Calitko; if not, write to the Free Software
00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00020 
00021 */
00022 
00023 #ifndef QT_H
00024 #define QT_H
00025 
00026 #include <QtGlobal>
00027 #include <QObject>
00028 
00029 #include <QApplication>
00030 #include <QtGui>
00031 
00032 #include <QTcpSocket>
00033 #include <QTcpServer>
00034 #include <QUdpSocket>
00035 #include <QHostInfo>
00036 
00037 #include <QTime>
00038 #include <QList>
00039 #include <QMap>
00040 #include <QMultiMap>
00041 
00042 #include <QUuid>
00043 #include <QDataStream>
00044 
00045 #include <QDomDocument>
00046 
00047 #include <memory>
00048 using std::auto_ptr;
00049 
00050 #include <typeinfo>
00051 #include <algorithm>
00052 #include <numeric>
00053 
00054 uint qHash(const QUuid &key);
00055 
00056 /* qmake ignore CALITKO_TESTABLE */
00058 #define CALITKO_TESTABLE
00059 
00060 /* qmake ignore CALITKO_MOCKABLE */
00062 #define CALITKO_MOCKABLE
00063 
00064 // Using long because on 64bit Linuxes long is 64bit and we normally cast a pointer to
00065 // to a ConnectionId. This is just a temporary solution because under Win64 long is
00066 // still 32 bit!
00067 typedef long ConnectionId; // \todo Remove if not used anymore!
00068 
00069 // These macros expand to forward declarations of types contained in namesapces:
00070 #define FORWARD_DECLARE(ns,dec)                                             \
00071     namespace ns { dec; }
00072 #define FORWARD_DECLARE2(ns1,ns2,dec)                                       \
00073     namespace ns1 { namespace ns2 { dec; }}
00074 #define FORWARD_DECLARE3(ns1,ns2,ns3,dec)                                   \
00075     namespace ns1 { namespace ns2 { namespace ns3 { dec; }}}
00076 #define FORWARD_DECLARE4(ns1,ns2,ns3,ns4,dec)                               \
00077     namespace ns1 { namespace ns2 { namespace ns3 {                         \
00078     namespace ns4 { dec; }}}}
00079 #define FORWARD_DECLARE5(ns1,ns2,ns3,ns4,ns5,dec)                           \
00080     namespace ns1 { namespace ns2 { namespace ns3 {                         \
00081     namespace ns4 { namespace ns5 { dec; }}}}}
00082 #define FORWARD_DECLARE6(ns1,ns2,ns3,ns4,ns5,ns6,dec)                       \
00083     namespace ns1 { namespace ns2 { namespace ns3 {                         \
00084     namespace ns4 { namespace ns5 { namespace ns6 { dec; }}}}}}
00085 #define FORWARD_DECLARE7(ns1,ns2,ns3,ns4,ns5,ns6,ns7,dec)                   \
00086     namespace ns1 { namespace ns2 { namespace ns3 {                         \
00087     namespace ns4 { namespace ns5 { namespace ns6 {                         \
00088     namespace ns7 { dec; }}}}}}}
00089 #define FORWARD_DECLARE8(ns1,ns2,ns3,ns4,ns5,ns6,ns7,ns8,dec)               \
00090     namespace ns1 { namespace ns2 { namespace ns3 {                         \
00091     namespace ns4 { namespace ns5 { namespace ns6 {                         \
00092     namespace ns7 { namespace ns8 { dec; }}}}}}}}
00093 #define FORWARD_DECLARE9(ns1,ns2,ns3,ns4,ns5,ns6,ns7,ns8,ns9,dec)           \
00094     namespace ns1 { namespace ns2 { namespace ns3 {                         \
00095     namespace ns4 { namespace ns5 { namespace ns6 {                         \
00096     namespace ns7 { namespace ns8 { namespace ns9 {                         \
00097     dec; }}}}}}}}}
00098 
00099 #define REFERENCE_OBJECT(Class)     Class (const Class &);                  \
00100                                     Class & operator= (const Class &);
00101 
00102 #define VALUE_OBJECT(Class)         Class (const Class &);                  \
00103                                     Class & operator= (const Class &);      \
00104                                     bool operator== (const Class &) const;  \
00105                                     bool operator!= (const Class &) const;
00106 
00107 #define STATIC_HELPER(Class)        Class();                                \
00108                                     ~Class();                               \
00109                                     Class (const Class &);                  \
00110                                     Class & operator= (const Class &);      \
00111 
00112 #endif // QT_H