This file is indexed.

/usr/include/musicbrainz3/entity.h is in libmusicbrainz3-dev 3.0.2-2.5.

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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/*
 * MusicBrainz -- The Internet music metadatabase
 *
 * Copyright (C) 2006 Lukas Lalinsky
 *	
 * 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * $Id: entity.h 9216 2007-06-25 19:42:20Z luks $
 */
 
#ifndef __MUSICBRAINZ3_ENTITY_H__
#define __MUSICBRAINZ3_ENTITY_H__

#include <string>
#include <musicbrainz3/musicbrainz.h> 
#include <musicbrainz3/lists.h> 
#include <musicbrainz3/relation.h> 
#include <musicbrainz3/tag.h> 

namespace MusicBrainz
{

	/**
	 * A first-level MusicBrainz class.
	 *
	 * All entities in MusicBrainz have unique IDs (which are absolute URIs)
	 * and may have any number of relations (Relation) to other entities.
	 * This class is abstract and should not be instantiated.
	 * 
	 * Relations are differentiated by their \e target \e type, that means,
	 * where they link to. MusicBrainz currently supports four target types
	 * (artists, releases, tracks, and URLs) each identified using a URI.
	 * To get all relations with a specific target type, you can use
	 * getRelations and pass one of the following constants as the
	 * parameter:
	 *
	 *	 - Relation::TO_ARTIST
	 *	 - Relation::TO_RELEASE
	 *	 - Relation::TO_TRACK
	 *	 - Relation::TO_URL
	 *	   
	 * @see Relation 
	 */
	class MB_API Entity
	{
	protected:
	
		/**
		 * Constructor.
		 *
		 * This should only used by derived classes.
		 *
		 * @param id a string containing an absolute URI 
		 */	 
		Entity(const std::string &id);
		
	public:
		
		/**
		 * Destructor.
		 */
		virtual ~Entity();
		
		/**
		 * Returns a MusicBrainz ID.
		 * 
		 * @return a string containing a URI
		 */
		virtual std::string getId() const;
		
		/**
		 * Sets a MusicBrainz ID.
		 *
		 * @param value a string containing an absolute URI	 
		 */
		virtual void setId(const std::string &value);

		/**
		 * Returns a list of relations.
		 *
		 * If \a targetType is given, only relations of that target
		 * type are returned. For MusicBrainz, the following target
		 * types are defined:
		 *
		 *  - Relation::TO_ARTIST
		 *  - Relation::TO_RELEASE
		 *  - Relation::TO_TRACK
		 *  - Relation::TO_URL
		 *
		 * If \a targetType is Relation::TO_ARTIST, for example,
		 * this method returns all relations between this Entity and
		 * artists.
		 *
		 * You may use the \a relationType parameter to further restrict
		 * the selection. If it is set, only relations with the given
		 * relation type are returned.
		 *
		 * @param targetType a string containing an absolute URI
		 * @param relationType a string containing an absolute URI
		 *
		 * @return a list of pointers to Relation objects
		 *
		 * @see Entity
		 */
		RelationList getRelations(const std::string &targetType = std::string(),
								  const std::string &relationType = std::string()) const;
		
		/**
		 * Adds a relation.
		 *
		 * This method adds \a relation to the list of relations. The
		 * given relation has to be initialized, at least the target
		 * type has to be set.
		 *
		 * @param relation a pointer to Relation object to add
		 */
		void addRelation(Relation *relation);
		
		/**
		 * Returns number of relations.
		 *
		 * This is equivalent to \c getRelations().size()
		 *
		 * @return an int containing number of relations
		 *
		 * @see getRelations		 
		 */
		int getNumRelations() const;
		
		/**
		 * Returns an relation specified by index.
		 *
		 * This is equivalent to \c getRelations()[index]
		 *
		 * @return a pointer to Relation instance
		 *
		 * @see getRelations		 
		 */
		Relation *getRelation(int index);

		TagList &getTags();
		int getNumTags() const;
		Tag *getTag(int index);
		
	private:

		class EntityPrivate;
		EntityPrivate *d;
	};
	
}

#endif