qpid/types/Uuid.h Source File

Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET | Apache Qpid Documentation

- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

qpid/types/Uuid.h
Go to the documentation of this file.

    00001 #ifndef QPID_TYPES_UUID_H
    00002 #define QPID_TYPES_UUID_H
    00003
    00004 /*
    00005  *
    00006  * Licensed to the Apache Software Foundation (ASF) under one
    00007  * or more contributor license agreements.  See the NOTICE file
    00008  * distributed with this work for additional information
    00009  * regarding copyright ownership.  The ASF licenses this file
    00010  * to you under the Apache License, Version 2.0 (the
    00011  * "License"); you may not use this file except in compliance
    00012  * with the License.  You may obtain a copy of the License at
    00013  *
    00014  *   http://www.apache.org/licenses/LICENSE-2.0
    00015  *
    00016  * Unless required by applicable law or agreed to in writing,
    00017  * software distributed under the License is distributed on an
    00018  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    00019  * KIND, either express or implied.  See the License for the
    00020  * specific language governing permissions and limitations
    00021  * under the License.
    00022  *
    00023  */
    00024
    00025 #include "qpid/types/ImportExport.h"
    00026 #include <iosfwd>
    00027 #include <string>
    00028
    00029 namespace qpid {
    00030 namespace types {
    00031
    00032 class QPID_TYPES_CLASS_EXTERN Uuid
    00033 {
    00034   public:
    00035     static const size_t SIZE;
    00040     QPID_TYPES_EXTERN Uuid(bool unique=false);
    00041     QPID_TYPES_EXTERN Uuid(const Uuid&);
    00042     QPID_TYPES_EXTERN Uuid& operator=(const Uuid&);
    00044     QPID_TYPES_EXTERN Uuid(const unsigned char* data16);
    00045
    00047     QPID_TYPES_EXTERN void generate();
    00048
    00050     QPID_TYPES_EXTERN void clear();
    00051
    00053     QPID_TYPES_EXTERN bool isNull() const;
    00054     QPID_TYPES_EXTERN operator bool() const;
    00055     QPID_TYPES_EXTERN bool operator!() const;
    00056
    00058     QPID_TYPES_EXTERN std::string str() const;
    00059
    00060     QPID_TYPES_EXTERN size_t size() const;
    00061     QPID_TYPES_EXTERN const unsigned char* data() const;
    00062
    00063     friend QPID_TYPES_EXTERN bool operator==(const Uuid&, const Uuid&);
    00064     friend QPID_TYPES_EXTERN bool operator!=(const Uuid&, const Uuid&);
    00065     friend QPID_TYPES_EXTERN bool operator<(const Uuid&, const Uuid&);
    00066     friend QPID_TYPES_EXTERN bool operator>(const Uuid&, const Uuid&);
    00067     friend QPID_TYPES_EXTERN bool operator<=(const Uuid&, const Uuid&);
    00068     friend QPID_TYPES_EXTERN bool operator>=(const Uuid&, const Uuid&);
    00069     friend QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream&, Uuid);
    00070     friend QPID_TYPES_EXTERN std::istream& operator>>(std::istream&, Uuid&);
    00071
    00072   private:
    00073     unsigned char bytes[16];
    00074 };
    00075
    00077 QPID_TYPES_EXTERN bool operator==(const Uuid&, const Uuid&);
    00079 QPID_TYPES_EXTERN bool operator!=(const Uuid&, const Uuid&);
    00080
    00081 QPID_TYPES_EXTERN bool operator<(const Uuid&, const Uuid&);
    00082 QPID_TYPES_EXTERN bool operator>(const Uuid&, const Uuid&);
    00083 QPID_TYPES_EXTERN bool operator<=(const Uuid&, const Uuid&);
    00084 QPID_TYPES_EXTERN bool operator>=(const Uuid&, const Uuid&);
    00085
    00087 QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream&, Uuid);
    00088
    00090 QPID_TYPES_EXTERN std::istream& operator>>(std::istream&, Uuid&);
    00091
    00092 }} // namespace qpid::types
    00093
    00094 #endif