亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? quuid.cpp

?? QT 開發環境里面一個很重要的文件
?? CPP
字號:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtCore module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "quuid.h"#include "qdatastream.h"/*!    \class QUuid    \brief The QUuid class stores a Universally Unique Identifier (UUID).    \reentrant    \ingroup misc    For objects or declarations that must be uniquely identified,    UUIDs (also known as GUIDs) are widely used in order to assign a    fixed and easy to compare value to the object or declaration. The    128-bit value of a UUID is generated by an algorithm that    guarantees that the value is unique.    In Qt, UUIDs are wrapped by the QUuid struct which provides    convenience functions for handling UUIDs. Most platforms provide    a tool to generate new UUIDs, for example, \c uuidgen and \c    guidgen.    UUIDs generated by QUuid, are based on the \c Random version of the    \c DCE (Distributed Computing Environment) standard.    UUIDs can be constructed from numeric values or from strings, or    using the static createUuid() function. They can be converted to a    string with toString(). UUIDs have a variant() and a version(),    and null UUIDs return true from isNull().*//*!    \fn QUuid::QUuid(const GUID &guid)    Casts a Windows \a guid to a Qt QUuid.    \warning This function is only for Windows platforms.*//*!    \fn QUuid &QUuid::operator=(const GUID &guid)    Assigns a Windows \a guid to a Qt QUuid.    \warning This function is only for Windows platforms.*//*!    \fn QUuid::operator GUID() const    Returns a Windows GUID from a QUuid.    \warning This function is only for Windows platforms.*//*!    \fn QUuid::QUuid()    Creates the null UUID {00000000-0000-0000-0000-000000000000}.*//*!    \fn QUuid::QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)    Creates a UUID with the value specified by the parameters, \a l,    \a w1, \a w2, \a b1, \a b2, \a b3, \a b4, \a b5, \a b6, \a b7, \a    b8.    Example:    \code    // {67C8770B-44F1-410A-AB9A-F9B5446F13EE}    QUuid IID_MyInterface(0x67c8770b, 0x44f1, 0x410a, 0xab, 0x9a, 0xf9, 0xb5, 0x44, 0x6f, 0x13, 0xee)    \endcode*/#ifndef QT_NO_QUUID_STRING/*!    Creates a QUuid object from the string \a text. The function can    only convert a string in the format    {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} (where 'H' stands for a hex    digit). If the conversion fails a null UUID is created.*/QUuid::QUuid(const QString &text){    bool ok;    if (text.isEmpty()) {        *this = QUuid();        return;    }    QString temp = text.toUpper();    if (temp[0] != QLatin1Char('{'))        temp = QLatin1Char('{') + text;    if (text[(int)text.length()-1] != QLatin1Char('}'))        temp += QLatin1Char('}');    data1 = temp.mid(1, 8).toULongLong(&ok, 16);    if (!ok) {        *this = QUuid();        return;    }    data2 = temp.mid(10, 4).toUInt(&ok, 16);    if (!ok) {        *this = QUuid();        return;    }    data3 = temp.mid(15, 4).toUInt(&ok, 16);    if (!ok) {        *this = QUuid();        return;    }    data4[0] = temp.mid(20, 2).toUInt(&ok, 16);    if (!ok) {        *this = QUuid();        return;    }    data4[1] = temp.mid(22, 2).toUInt(&ok, 16);    if (!ok) {        *this = QUuid();        return;    }    for (int i = 2; i<8; i++) {        data4[i] = temp.mid(25 + (i-2)*2, 2).toUShort(&ok, 16);        if (!ok) {            *this = QUuid();            return;        }    }}/*!    \internal*/QUuid::QUuid(const char *text){    *this = QUuid(QString::fromLatin1(text));}#endif/*!    \fn bool QUuid::operator==(const QUuid &other) const    Returns true if this QUuid and the \a other QUuid are identical;    otherwise returns false.*//*!    \fn bool QUuid::operator!=(const QUuid &other) const    Returns true if this QUuid and the \a other QUuid are different;    otherwise returns false.*/#ifndef QT_NO_QUUID_STRING/*!    \fn QUuid::operator QString() const    Returns the string representation of the uuid.    \sa toString()*/static QString uuidhex(uint data, int digits){    return QString::number(data, 16).rightJustified(digits, QLatin1Char('0'));}/*!    Returns the string representation of the uuid.*/QString QUuid::toString() const{    QString result;    QChar dash = QLatin1Char('-');    result = QLatin1Char('{') + uuidhex(data1,8);    result += dash;    result += uuidhex(data2,4);    result += dash;    result += uuidhex(data3,4);    result += dash;    result += uuidhex(data4[0],2);    result += uuidhex(data4[1],2);    result += dash;    for (int i = 2; i < 8; i++)        result += uuidhex(data4[i],2);    return result + QLatin1Char('}');}#endif#ifndef QT_NO_DATASTREAM/*!    \relates QUuid    Writes the uuid \a id to the datastream \a s.*/QDataStream &operator<<(QDataStream &s, const QUuid &id){    s << (quint32)id.data1;    s << (quint16)id.data2;    s << (quint16)id.data3;    for (int i = 0; i < 8; i++)        s << (quint8)id.data4[i];    return s;}/*!    \relates QUuid    Reads uuid from from the stream \a s into \a id.*/QDataStream &operator>>(QDataStream &s, QUuid &id){    quint32 u32;    quint16 u16;    quint8 u8;    s >> u32;    id.data1 = u32;    s >> u16;    id.data2 = u16;    s >> u16;    id.data3 = u16;    for (int i = 0; i < 8; i++) {        s >> u8;        id.data4[i] = u8;    }    return s;}#endif/*!    Returns true if this is the null UUID    {00000000-0000-0000-0000-000000000000}; otherwise returns false.*/bool QUuid::isNull() const{    return data4[0] == 0 && data4[1] == 0 && data4[2] == 0 && data4[3] == 0 &&           data4[4] == 0 && data4[5] == 0 && data4[6] == 0 && data4[7] == 0 &&           data1 == 0 && data2 == 0 && data3 == 0;}/*!    \enum QUuid::Variant    This enum defines the variant of the UUID, which is the scheme    which defines the layout of the 128-bits value.    \value VarUnknown Variant is unknown    \value NCS Reserved for NCS (Network Computing System) backward compatibility    \value DCE Distributed Computing Environment, the scheme used by QUuid    \value Microsoft Reserved for Microsoft backward compatibility (GUID)    \value Reserved Reserved for future definition*//*!    \enum QUuid::Version    This enum defines the version of the UUID.    \value VerUnknown Version is unknown    \value Time Time-based, by using timestamp, clock sequence, and    MAC network card address (if available) for the node sections    \value EmbeddedPOSIX DCE Security version, with embedded POSIX UUIDs    \value Name Name-based, by using values from a name for all sections    \value Random Random-based, by using random numbers for all sections*//*!    \fn QUuid::Variant QUuid::variant() const    Returns the variant of the UUID.    The null UUID is considered to be of an unknown variant.    \sa version()*/QUuid::Variant QUuid::variant() const{    if (isNull())        return VarUnknown;    // Check the 3 MSB of data4[0]    if ((data4[0] & 0x80) == 0x00) return NCS;    else if ((data4[0] & 0xC0) == 0x80) return DCE;    else if ((data4[0] & 0xE0) == 0xC0) return Microsoft;    else if ((data4[0] & 0xE0) == 0xE0) return Reserved;    return VarUnknown;}/*!    \fn QUuid::Version QUuid::version() const    Returns the version of the UUID, if the UUID is of the DCE    variant; otherwise returns VerUnknown.    \sa variant()*/QUuid::Version QUuid::version() const{    // Check the 4 MSB of data3    Version ver = (Version)(data3>>12);    if (isNull()         || (variant() != DCE)         || ver < Time         || ver > Random)        return VerUnknown;    return ver;}/*!    \fn bool QUuid::operator<(const QUuid &other) const    Returns true if this QUuid is of the same variant,    and lexicographically before the \a other QUuid;    otherwise returns false.    \sa variant()*/#define ISLESS(f1, f2) if (f1!=f2) return (f1<f2);bool QUuid::operator<(const QUuid &other) const{    if (variant() != other.variant())        return false;    ISLESS(data1, other.data1);    ISLESS(data2, other.data2);    ISLESS(data3, other.data3);    for (int n = 0; n < 8; n++) {        ISLESS(data4[n], other.data4[n]);    }    return false;}/*!    \fn bool QUuid::operator>(const QUuid &other) const    Returns true if this QUuid is of the same variant,    and lexicographically after the \a other QUuid;    otherwise returns false.    \sa variant()*/#define ISMORE(f1, f2) if (f1!=f2) return (f1>f2);bool QUuid::operator>(const QUuid &other) const{    if (variant() != other.variant())        return false;    ISMORE(data1, other.data1);    ISMORE(data2, other.data2);    ISMORE(data3, other.data3);    for (int n = 0; n < 8; n++) {        ISMORE(data4[n], other.data4[n]);    }    return false;}/*!    \fn QUuid QUuid::createUuid()    Returns a new UUID of \c DCE variant, and \c Random type. The    UUIDs generated are based on the platform specific pseudo-random    generator, which is usually not a cryptographic-quality random    number generator. Therefore, a UUID is not guaranteed to be unique    cross application instances.    On Windows, the new UUID is extremely likely to be unique on the    same or any other system, networked or not.    \sa variant(), version()*/#if defined(Q_OS_WIN32)#include <objbase.h> // For CoCreateGuidQUuid QUuid::createUuid(){    GUID guid;    CoCreateGuid(&guid);    QUuid result = guid;    return result;}#else // !Q_OS_WIN32#include "qdatetime.h"#include "stdlib.h" // For srand/randQUuid QUuid::createUuid(){    static const int intbits = sizeof(int)*8;    static int randbits = 0;    if (!randbits) {        int max = RAND_MAX;        do { ++randbits; } while ((max=max>>1));        qsrand((uint)QDateTime::currentDateTime().toTime_t());        qrand(); // Skip first    }    QUuid result;    uint *data = &(result.data1);    int chunks = 16 / sizeof(uint);    while (chunks--) {        uint randNumber = 0;        for (int filled = 0; filled < intbits; filled += randbits)            randNumber |= qrand()<<filled;         *(data+chunks) = randNumber;    }    result.data4[0] = (result.data4[0] & 0x3F) | 0x80;        // UV_DCE    result.data3 = (result.data3 & 0x0FFF) | 0x4000;        // UV_Random    return result;}#endif // !Q_OS_WIN32/*!    \fn bool QUuid::operator==(const GUID &guid) const    Returns true if this UUID is equal to the Windows GUID \a guid;    otherwise returns false.*//*!    \fn bool QUuid::operator!=(const GUID &guid) const    Returns true if this UUID is not equal to the Windows GUID \a    guid; otherwise returns false.*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区视频观看视频| 成人av在线观| 亚洲欧美在线高清| 国产亚洲精品超碰| 国产亚洲欧美色| 国产欧美视频一区二区| 日本一区二区三区电影| 日本一区二区三区视频视频| 国产精品久久久久婷婷| 国产精品视频一二| 欧美韩国日本不卡| 亚洲欧美日本韩国| 亚洲自拍另类综合| 天天操天天综合网| 精品无码三级在线观看视频| 国产精品影视在线观看| 大美女一区二区三区| 99视频一区二区| 欧美日韩一区二区三区不卡| 欧美精品在欧美一区二区少妇| 制服丝袜成人动漫| 久久精品视频免费| 亚洲三级电影网站| 天天av天天翘天天综合网色鬼国产| 免费成人在线观看视频| 成人午夜短视频| 欧美午夜影院一区| 亚洲精品一区二区三区在线观看| 欧美国产日产图区| 亚洲444eee在线观看| 国产夫妻精品视频| 欧美日韩aaaaaa| 久久精品亚洲麻豆av一区二区 | 国产成人自拍高清视频在线免费播放| 成人黄色国产精品网站大全在线免费观看| 色悠悠久久综合| 亚洲精品一线二线三线| 一二三区精品视频| 国产精品综合网| 欧美群妇大交群的观看方式| 国产欧美一区二区精品性色超碰 | 日韩欧美自拍偷拍| 国产精品久久久久久久久果冻传媒 | 99精品国产91久久久久久| 制服丝袜一区二区三区| 亚洲三级在线观看| 国产成人小视频| 制服丝袜亚洲播放| 亚洲老司机在线| 成人涩涩免费视频| 日韩美一区二区三区| 亚洲精品高清在线观看| 成人午夜免费电影| 欧美成人vr18sexvr| 亚洲一区二区成人在线观看| 成人综合婷婷国产精品久久免费| 欧美一区二区三区人| 夜夜嗨av一区二区三区网页| av一二三不卡影片| 国产午夜一区二区三区| 精品一区二区日韩| 欧美一区二区三区日韩视频| 天天色天天爱天天射综合| 日本电影欧美片| 亚洲欧美日韩久久| 99视频精品在线| 亚洲私人影院在线观看| 91一区二区三区在线观看| 国产精品视频一区二区三区不卡| 国产福利91精品| 欧美国产成人精品| www.久久久久久久久| 国产精品久久久久久久久免费丝袜 | 亚洲国产精品激情在线观看| 国产主播一区二区三区| 精品999久久久| 国产在线精品一区在线观看麻豆| 欧美一级理论片| 久久99国产精品免费网站| 欧美大片在线观看一区| 久久99精品久久久| 精品国产乱码久久久久久久久 | 欧美私人免费视频| 亚洲第一主播视频| 日韩午夜在线播放| 国产精品一二三在| 国产精品乱码一区二区三区软件 | 性做久久久久久久久| 91精品国产综合久久久久久久久久 | 激情av综合网| 国产视频在线观看一区二区三区| 粉嫩久久99精品久久久久久夜| 亚洲国产精品激情在线观看| 91蝌蚪porny九色| 天天av天天翘天天综合网| 精品国产麻豆免费人成网站| 成人激情午夜影院| 亚洲精品亚洲人成人网在线播放| 欧美日韩精品欧美日韩精品| 蜜桃视频一区二区三区在线观看| 国产婷婷色一区二区三区| 色狠狠av一区二区三区| 日韩国产在线观看| 中文在线资源观看网站视频免费不卡 | 精品久久久久久久久久久久久久久久久 | 日韩国产一二三区| 久久久99精品免费观看不卡| 91色porny在线视频| 日欧美一区二区| 国产色产综合色产在线视频| 欧美中文字幕亚洲一区二区va在线| 男女激情视频一区| 国产精品传媒在线| 51久久夜色精品国产麻豆| 成人精品免费视频| 青青草视频一区| 最新国产の精品合集bt伙计| 欧美一区二区三区在线| 成人午夜免费视频| 久久99精品国产麻豆不卡| 一区2区3区在线看| 欧美激情一区二区在线| 日韩欧美国产综合在线一区二区三区| 成人av网址在线观看| 美女高潮久久久| 亚洲在线视频免费观看| 国产精品久久三区| 久久午夜羞羞影院免费观看| 欧美日本在线看| 色综合视频在线观看| 福利一区二区在线观看| 麻豆成人久久精品二区三区红| 一区二区三区毛片| 国产精品九色蝌蚪自拍| 国产日本欧美一区二区| 欧美成人综合网站| 91精品国产综合久久精品图片| 色噜噜狠狠成人网p站| 99精品欧美一区二区蜜桃免费| 国产精品1024| 黄色日韩网站视频| 蜜桃精品视频在线| 琪琪一区二区三区| 日韩电影在线观看电影| 亚洲成人av在线电影| 亚洲一区二区在线免费观看视频| 1000部国产精品成人观看| 国产精品国产三级国产普通话三级| 久久久久国产精品免费免费搜索| 日韩欧美卡一卡二| 精品剧情在线观看| 久久综合九色综合欧美98| 精品国产三级a在线观看| 精品国产露脸精彩对白| 精品理论电影在线观看| 久久久五月婷婷| 久久精品人人做人人综合| 中文字幕二三区不卡| 中文字幕在线观看一区| 亚洲免费av在线| 亚洲一区二区精品久久av| 日韩精品一二区| 精品亚洲免费视频| 丁香婷婷综合激情五月色| 成人av免费在线播放| 色噜噜狠狠成人中文综合| 欧美日韩夫妻久久| 2020日本不卡一区二区视频| 国产色综合久久| 一区二区国产视频| 秋霞电影网一区二区| 国产精品亚洲а∨天堂免在线| 成人不卡免费av| 欧美亚洲愉拍一区二区| 91精品国产综合久久久久久漫画| www国产成人| 亚洲专区一二三| 激情六月婷婷久久| 一本大道av一区二区在线播放| 欧美一区二区三区视频免费播放| 久久理论电影网| 亚洲国产精品人人做人人爽| 激情综合色播五月| 91丨九色丨尤物| 日韩美女主播在线视频一区二区三区| 欧美国产日韩在线观看| 亚洲chinese男男1069| 国产成人精品免费在线| 欧美日韩一区二区三区在线看| 久久久噜噜噜久噜久久综合| 亚洲一区二区视频| 国产综合久久久久久鬼色| 欧美色图片你懂的| 欧美国产日韩a欧美在线观看| 日韩va欧美va亚洲va久久| 成人高清视频免费观看| 日韩欧美国产三级| 亚洲综合在线免费观看| 国产大陆亚洲精品国产| 精品亚洲国内自在自线福利|