/usr/include/wvstreams/xplc/module.h is in libwvstreams-dev 4.6.1-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* XPLC - Cross-Platform Lightweight Components
* Copyright (C) 2002, Pierre Phaneuf
* Copyright (C) 2002, Net Integration Technologies, Inc.
* Copyright (C) 2002, Stéphane Lajoie
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
#ifndef __XPLC_MODULE_H__
#define __XPLC_MODULE_H__
#if defined(__GNUC__) && __GNUC__ > 3
# pragma GCC system_header
#endif
/** \file
*
* Structures and definitions related to the XPLC module ABI
* (Application Binary Interface).
*/
#include <xplc/IObject.h>
#ifdef UNSTABLE
#include <limits.h>
#endif
/**
* XPLC module magic number. Used to ensure that we are dealing with a
* valid XPLC module.
*/
#define XPLC_MODULE_MAGIC 0x58504c43UL
/**
* The current XPLC module ABI version.
*/
//@{
#ifdef UNSTABLE
#define XPLC_MODULE_VERSION_MAJOR UINT_MAX
#define XPLC_MODULE_VERSION_MINOR 0
#else
#define XPLC_MODULE_VERSION_MAJOR 0
#define XPLC_MODULE_VERSION_MINOR 0
#endif
//@}
/**
* Defines attributes required for exported symbols.
*/
#ifdef WIN32
#define ENTRYPOINT extern "C" __declspec(dllexport)
#else
#define ENTRYPOINT extern "C"
#endif
/**
* Entry for a component. Modules have an array of these, where the
* function pointed at by getObject will be used to obtain an
* interface pointer when the requested UUID matches the one in uuid.
*/
struct XPLC_ComponentEntry {
//@{
const UUID& uuid;
IObject* (*getObject)();
//@}
};
/**
* Entry for a category registration. Modules have an array of these,
* used to indicate the category information for the module.
*/
struct XPLC_CategoryEntry {
//@{
const UUID& category;
const UUID& uuid;
const char* const string;
//@}
};
/**
* Information for an XPLC module.
*/
struct XPLC_ModuleInfo {
/**
* XPLC module magic number. This is to ensure that it is in fact a
* valid XPLC module that has been loaded.
*/
unsigned long magic;
/**
* The XPLC module ABI version that this module conforms to. This
* should always be the first member of the XPLC_ModuleInfo
* structure, as the meaning of the following members depend on it.
*/
unsigned int version_major;
/**
* The XPLC module ABI sub-version that this module conforms
* to. This is used for optional and backward-compatible changes in
* the module ABI.
*/
unsigned int version_minor;
/**
* Description string for the module.
*/
const char* description;
/**
* List of components supported by the module. This is a pointer to
* the list of components that will be made available by this
* module.
*/
const XPLC_ComponentEntry* const components;
/**
* List of category registrations for the module.
*/
const XPLC_CategoryEntry* const categories;
};
/**
* Definition of the XPLC module information structure. This structure
* should be initialized appropriately in a loadable XPLC module.
*/
ENTRYPOINT const XPLC_ModuleInfo XPLC_Module;
#endif /* __XPLC_MODULE_H__ */
|