This file is indexed.

/usr/include/Inventor/SbDict.h is in inventor-dev 2.1.5-10-18.

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
142
143
144
145
146
147
/*
 *
 *  Copyright (C) 2000 Silicon Graphics, Inc.  All Rights Reserved. 
 *
 *  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.
 *
 *  Further, this software is distributed without any warranty that it is
 *  free of the rightful claim of any third person regarding infringement
 *  or the like.  Any license provided herein, whether implied or
 *  otherwise, applies only to this software file.  Patent licenses, if
 *  any, provided herein do not apply to combinations of this program with
 *  other software, or any other product whatsoever.
 * 
 *  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
 *
 *  Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 *  Mountain View, CA  94043, or:
 * 
 *  http://www.sgi.com 
 * 
 *  For further information regarding this notice, see: 
 * 
 *  http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 *
 */

//  -*- C++ -*-

/*
 * Copyright (C) 1990,91   Silicon Graphics, Inc.
 *
 _______________________________________________________________________
 ______________  S I L I C O N   G R A P H I C S   I N C .  ____________
 |
 |   $Revision: 1.1.1.1 $
 |
 |   Description:
 |	This file defines dictionaries. A dictionary maps some sort of
 |	unique key to a data pointer. Keys are unsigned long integers.
 |
 |   Classes:
 |	SbDictEntry, SbDict
 |
 |   Author(s)		: Paul S. Strauss, Nick Thompson
 |
 ______________  S I L I C O N   G R A P H I C S   I N C .  ____________
 _______________________________________________________________________
 */

// C-api: end

#ifndef _SB_DICT_
#define _SB_DICT_

#include <Inventor/SbBasic.h>
#include <Inventor/SbString.h>
#include <Inventor/SbPList.h>

//////////////////////////////////////////////////////////////////////////////
//
//  Class: SbDictEntry (internal to SB)
//
//  A dictionary is stored as a collection of entries, each of which
//  is an SbDictEntry. It contains the key and value for the entry and
//  a link to create lists of entries.
//
//////////////////////////////////////////////////////////////////////////////

SoINTERNAL class SbDictEntry {
  private:
    unsigned long		key;
    void *		value;

    SbDictEntry *	next;

    // Constructor
    SbDictEntry(unsigned long k, void *v)	{ key = k; value = v; };

friend class SbDict;
};

//////////////////////////////////////////////////////////////////////////////
//
//  Class: SbDict
//
//  This is a dictionary mapping (unsigned long) integer keys to (void *) data
//  pointers.
//
//////////////////////////////////////////////////////////////////////////////

SoEXTENDER class SbDict {
  public:

    // Constructor
    SbDict( int entries = 251 );

    // Destructor
    ~SbDict();

    // Calls given routine (passing value) for each entry in dictionary.
    //  The order of entries is not guaranteed to mean anything.
    void	applyToAll(void (*rtn)(unsigned long key, void *value) );

    // Calls given routine (passing value,data) for each entry in dictionary.
    //  The order of entries is not guaranteed to mean anything.
    // C-api: name=applyToAllWithData
    void	applyToAll(void (*rtn)(unsigned long key, void *value, void *data), 
			   void *data );

    // Removes all entries from dictionary.
    void	clear();

    // Enters a key,value pair into the dictionary. Overwrites entry and
    //  returns FALSE if key already exists.
    SbBool	enter(unsigned long key, void *value);

    // Finds entry with given key, setting value to point to value.
    //  Returns FALSE if no such entry.
    SbBool	find(unsigned long key, void *&value) const;

    // Makes two SbPLists, one for keys and the other for values.
    //  The order of entries is not guaranteed to mean anything.
    void	makePList(SbPList &keys, SbPList &values);

    // Removes the entry with the given key. Returns FALSE if no such entry.
    SbBool	remove(unsigned long key);

  private:
    // Entries are stored as an external hash table of SbDictEntry instances.
    int			tableSize;			// Entries in table
    SbDictEntry *	*buckets;			// Hash table

    SbDictEntry *&	findEntry(unsigned long key) const;
    static void		addEntryToPLists(unsigned long key, void *value, void *data);
};

#endif /* _SB_DICT_ */