This file is indexed.

/usr/include/openturns/LibraryLoader.hxx is in libopenturns-dev 0.15-2.

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
//                                               -*- C++ -*-
/**
 *  @file  LibraryLoader.hxx
 *  @brief The class LibraryLoader loads and manages all dynamic libraries
 *
 *  (C) Copyright 2005-2011 EDF-EADS-Phimeca
 *
 *  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.
 *
 *  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
 *
 *  @author: $LastChangedBy: schueller $
 *  @date:   $LastChangedDate: 2011-04-11 12:32:27 +0200 (Mon, 11 Apr 2011) $
 *  Id:      $Id: LibraryLoader.hxx 1866 2011-04-11 10:32:27Z schueller $
 */
#ifndef OPENTURNS_LIBRARYLOADER_HXX
#define OPENTURNS_LIBRARYLOADER_HXX

#include <iostream>              // for std::ostream
#include <map>                   // for std::map
#include "Exception.hxx"
#include "OStream.hxx"
#include "Library.hxx"
#include "Lockable.hxx"


namespace OpenTURNS
{

  namespace Base
  {

    namespace Func
    {

      /**
       * @class LibraryLoader
       * @brief Loads and manages all dynamic libraries
       * @ingroup Wrapper
       *
       * The LibraryLoader class acts as a general factory to load and unload
       * dynamic libraries (Unix shared objects or Windows DLL) on demand.
       * The class is based on the 'singleton' design pattern.
       * Libraries are loaded only once and handles are stored in a map.
       * @see Library
       * @todo Library reference counting
       * @toto Release method definition and implementation
       */

      class LibraryLoader
        : public Common::Lockable
      {
        CLASSNAME;
      public:

        typedef Common::FileNotFoundException   FileNotFoundException;
        typedef Common::DynamicLibraryException DynamicLibraryException;

        /** The accessor to the Singleton element */
        static LibraryLoader & GetInstance();

        /* Destructor */
        ~LibraryLoader();

        /* String converter */
        String __repr__() const;
        String __str__(const String & offset = "") const;

        /** @brief Loads the library at path
         * This method takes the path, either relative or absolute, to a dynamic loadable object
         * and tries to lod it. If the object was already loaded, the previous reference is returned.
         * It not the object is searched for on the filesystem. If it can't be found a
         * FileNotFoundException is raised. If it is found but can't be loaded a DynamicLibraryException
         * is raised.
         * @throw FileNotFoundException
         * @throw DynamicLibraryException
         * @param path A path to the object to be loaded
         * @result An handle to the Library usable afterwars by other Open TURNS objects
         */
        Library load(const OT::FileName & path) /* throw(FileNotFoundException,DynamicLibraryException) */;

      protected:

      private:

        /**
         * The map that stores all the handles on loaded dynamic libraries
         * Key is the path of the library, value is the handle onto the library.
         * This map is protected against concurrent accesses
         */
        typedef std::map<FileName,LibraryHandle> CatalogType;
        CatalogType libraryCatalog_;

        /** The unique instance of the Singleton model */
        static LibraryLoader * p_instance_;

        /** Default constructor */
        LibraryLoader();

        /** Copy constructor */
        LibraryLoader(const LibraryLoader & other);

        /** Assignment */
        LibraryLoader & operator =(const LibraryLoader & other);

      }

        ; /* class LibraryLoader */

      /**
       * @fn std::ostream & operator <<(std::ostream & os, const LibraryLoader & obj)
       * @brief Output stream converter
       * @param os A STL output stream object
       * @param obj The object read by \em os
       * @return A reference to \em os
       */
      std::ostream & operator <<(std::ostream & os, const LibraryLoader & obj);
      Common::OStream & operator <<(Common::OStream & OS, const LibraryLoader & obj);

    } /* namespace Func */
  } /* namespace Base */
} /* namespace OpenTURNS */

#endif /* OPENTURNS_LIBRARYLOADER_HXX */