WvStreams
debian/libwvstreams-dev/usr/include/wvstreams/xplc/module.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) 2002, Pierre Phaneuf
5 * Copyright (C) 2002, Net Integration Technologies, Inc.
6 * Copyright (C) 2002, 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_MODULE_H__
25#define __XPLC_MODULE_H__
26
27#if defined(__GNUC__) && __GNUC__ > 3
28# pragma GCC system_header
29#endif
30
37#include <xplc/IObject.h>
38
39#ifdef UNSTABLE
40#include <limits.h>
41#endif
42
47#define XPLC_MODULE_MAGIC 0x58504c43UL
48
53#ifdef UNSTABLE
54#define XPLC_MODULE_VERSION_MAJOR UINT_MAX
55#define XPLC_MODULE_VERSION_MINOR 0
56#else
57#define XPLC_MODULE_VERSION_MAJOR 0
58#define XPLC_MODULE_VERSION_MINOR 0
59#endif
61
65#ifdef WIN32
66#define ENTRYPOINT extern "C" __declspec(dllexport)
67#else
68#define ENTRYPOINT extern "C"
69#endif
70
78 const UUID& uuid;
79 IObject* (*getObject)();
81};
82
89 const UUID& category;
90 const UUID& uuid;
91 const char* const string;
93};
94
103 unsigned long magic;
109 unsigned int version_major;
115 unsigned int version_minor;
116
120 const char* description;
121
128
133};
134
140
141#endif /* __XPLC_MODULE_H__ */
The basic interface which is included by all other XPLC interfaces and objects.
#define ENTRYPOINT
Defines attributes required for exported symbols.
ENTRYPOINT const XPLC_ModuleInfo XPLC_Module
Definition of the XPLC module information structure.
const XPLC_CategoryEntry *const categories
List of category registrations for the module.
const char * description
Description string for the module.
unsigned int version_minor
The XPLC module ABI sub-version that this module conforms to.
unsigned int version_major
The XPLC module ABI version that this module conforms to.
const XPLC_ComponentEntry *const components
List of components supported by the module.