WvStreams
debian/libwvstreams-dev/usr/include/wvstreams/xplc/uuid.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 *
3 * XPLC - Cross-Platform Lightweight Components
4 * Copyright (C) 2000-2003, Pierre Phaneuf
5 * Copyright (C) 2002, Net Integration Technologies, Inc.
6 * Copyright (C) 2004, Stéphane Lajoie
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation; either version 2.1 of
11 * the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21 * USA
22 */
23
24#ifndef __XPLC_UUID_H__
25#define __XPLC_UUID_H__
26
27#if defined(__GNUC__) && __GNUC__ > 3
28# pragma GCC system_header
29#endif
30
79#if defined WIN32 || defined SOLARIS
80typedef unsigned long u_int32_t;
81typedef unsigned short u_int16_t;
82typedef unsigned char u_int8_t;
83#else
84#include <sys/types.h>
85#endif
86
88#ifndef GUID_DEFINED
89#define GUID_DEFINED
94typedef struct _GUID {
96 u_int32_t Data1;
97 u_int16_t Data2;
98 u_int16_t Data3;
99 u_int8_t Data4[8];
102#endif
103
104#ifndef UUID_DEFINED
105#define UUID_DEFINED
106typedef GUID UUID;
107#ifndef uuid_t
108#define uuid_t UUID
109#endif
110#endif
112
114static const UUID UUID_null = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}};
115
127template<class T>
128struct XPLC_IID {
129};
130
134#define DEFINE_IID(iface, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11) \
135static const UUID iface##_IID = u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11; \
136template <> \
137struct XPLC_IID<iface> { \
138 static const UUID& get() { \
139 return iface##_IID; \
140 } \
141}
142
143#endif /* __XPLC_UUID_H__ */
struct _GUID GUID
The structure underlying UUIDs.