This file is indexed.

/usr/include/xplc-0.3.13/xplc/module.h is in libxplc0.3.13-dev 0.3.13-7.

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__ */