This file is indexed.

/usr/include/odil/VRFinder.h is in libodil-dev 0.8.0-4build1.

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
/*************************************************************************
 * odil - Copyright (C) Universite de Strasbourg
 * Distributed under the terms of the CeCILL-B license, as published by
 * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 * for details.
 ************************************************************************/

#ifndef _b7afd80f_327e_4d9a_b0fa_88c565add7b3
#define _b7afd80f_327e_4d9a_b0fa_88c565add7b3

#include <functional>
#include <string>
#include <vector>

#include "odil/DataSet.h"
#include "odil/odil.h"
#include "odil/Tag.h"
#include "odil/VR.h"

namespace odil
{

/// @brief Find the VR of elements in an implicit VR data set.
class ODIL_API VRFinder
{
public:
    /**
     * @brief Prototype of finder functions.
     *
     * Finder functions must raise an exception if they are not applicable.
     */
    typedef
        std::function<VR(Tag const &, DataSet const &, std::string const &)>
        Finder;

    /// @brief Default finder functions.
    static std::vector<Finder> const default_finders;

    /// @brief User-defined finder functions, empty by default.
    std::vector<Finder> finders;

    /// @brief Constructor.
    VRFinder();

    /**
     * @brief Return a VR for the given tag, partially-constructed data set and
     * transfer-syntax. If no VR can be found, raise an exception.
     *
     * The user-defined finders are tried first, then the default_finders.
     */
    VR operator()(
        Tag const & tag, DataSet const & data_set,
        std::string const & transfer_syntax) const;

    /// @brief Return the VR from the public dictionary.
    static VR public_dictionary(
        Tag const & tag, DataSet const &, std::string const &);

    /// @brief Return the VR of group-length (gggg,0000) elements.
    static VR group_length(
        Tag const & tag, DataSet const &, std::string const &);

    /// @brief Return a default VR (UN) for private tags.
    static VR private_tag(
        Tag const & tag, DataSet const &, std::string const &);

    /// @brief Return the VR of elements defined in PS3.5, A.1 (c).
    static VR implicit_vr_little_endian(
        Tag const & tag, DataSet const & data_set,
        std::string const & transfer_syntax);
    
    /// @brief Return the VR of elements defined in PS3.5, A.2 (c).
    static VR explicit_vr_little_endian(
        Tag const & tag, DataSet const & data_set,
        std::string const & transfer_syntax);

private:
    static std::vector<Finder> _get_default_finders();
};

}

#endif // _b7afd80f_327e_4d9a_b0fa_88c565add7b3