1/*
2 * MusicBrainz -- The Internet music metadatabase
3 *
4 * Copyright (C) 2006 Lukas Lalinsky
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 *
21 */
22
23#ifndef __MUSICBRAINZ3_LISTS_H__
24#define __MUSICBRAINZ3_LISTS_H__
25
26#include <vector>
27
28namespace MusicBrainz
29{
30
31 class Artist;
32 class ArtistAlias;
33 class ArtistResult;
34 class Disc;
35 class Relation;
36 class Release;
37 class ReleaseEvent;
38 class ReleaseGroup;
39 class ReleaseGroupResult;
40 class ReleaseResult;
41 class Result;
42 class Track;
43 class TrackResult;
44 class User;
45 class Tag;
46 class Label;
47 class LabelAlias;
48 class LabelResult;
49
50 //! A vector of pointers to Artist objects
51 typedef std::vector<Artist *> ArtistList;
52 //! A vector of pointers to ArtistAlias objects
53 typedef std::vector<ArtistAlias *> ArtistAliasList;
54 //! A vector of pointers to ArtistResult objects
55 typedef std::vector<ArtistResult *> ArtistResultList;
56 //! A vector of pointers to Disc objects
57 typedef std::vector<Disc *> DiscList;
58 //! A vector of pointers to Relation objects
59 typedef std::vector<Relation *> RelationList;
60 //! A vector of pointers to Release objects
61 typedef std::vector<Release *> ReleaseList;
62 //! A vector of pointers to ReleaseEvent objects
63 typedef std::vector<ReleaseEvent *> ReleaseEventList;
64 typedef std::vector<ReleaseGroup *> ReleaseGroupList;
65 typedef std::vector<ReleaseGroupResult *> ReleaseGroupResultList;
66 //! A vector of pointers to ReleaseResult objects
67 typedef std::vector<ReleaseResult *> ReleaseResultList;
68 //! A vector of pointers to Result objects
69 typedef std::vector<Result *> ResultList;
70 //! A vector of pointers to Track objects
71 typedef std::vector<Track *> TrackList;
72 //! A vector of pointers to TrackResult objects
73 typedef std::vector<TrackResult *> TrackResultList;
74 //! A vector of pointers to User objects
75 typedef std::vector<User *> UserList;
76 //! A vector of pointers to Tag objects
77 typedef std::vector<Tag *> TagList;
78 //! A vector of pointers to Label objects
79 typedef std::vector<Label *> LabelList;
80 //! A vector of pointers to LabelAlias objects
81 typedef std::vector<LabelAlias *> LabelAliasList;
82 //! A vector of pointers to ArtistResult objects
83 typedef std::vector<LabelResult *> LabelResultList;
84 typedef std::vector<std::string> IsrcList;
85
86}
87
88#endif
89
90