libmusicbrainz3 3.0.3
|
00001 /* 00002 * MusicBrainz -- The Internet music metadatabase 00003 * 00004 * Copyright (C) 2006 Lukas Lalinsky 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00019 * 00020 * 00021 */ 00022 00023 #ifndef __MUSICBRAINZ3_RESULTS_H__ 00024 #define __MUSICBRAINZ3_RESULTS_H__ 00025 00026 #include <musicbrainz3/model.h> 00027 00028 namespace MusicBrainz 00029 { 00030 00034 class MB_API Result 00035 { 00036 public: 00037 00043 Result(int score); 00044 00048 virtual ~Result() {}; 00049 00058 int getScore(); 00059 00065 void setScore(int score); 00066 00067 private: 00068 00069 int score; 00070 }; 00071 00079 class MB_API ArtistResult : public Result 00080 { 00081 public: 00082 00086 ArtistResult(Artist *artist, int score); 00087 00091 ~ArtistResult(); 00092 00098 Artist *getArtist(); 00099 00105 void setArtist(Artist *artist); 00106 00107 private: 00108 00109 Artist *artist; 00110 }; 00111 00119 class MB_API LabelResult : public Result 00120 { 00121 public: 00122 00126 LabelResult(Label *label, int score); 00127 00131 ~LabelResult(); 00132 00138 Label *getLabel(); 00139 00145 void setLabel(Label *label); 00146 00147 private: 00148 00149 Label *label; 00150 }; 00151 00159 class MB_API ReleaseResult : public Result 00160 { 00161 public: 00162 00166 ReleaseResult(Release *release, int score); 00167 00171 ~ReleaseResult(); 00172 00178 Release *getRelease(); 00179 00185 void setRelease(Release *release); 00186 00187 private: 00188 00189 Release *release; 00190 }; 00191 00199 class MB_API ReleaseGroupResult : public Result 00200 { 00201 public: 00202 00206 ReleaseGroupResult(ReleaseGroup *releaseGroup, int score); 00207 00211 ~ReleaseGroupResult(); 00212 00218 ReleaseGroup *getReleaseGroup(); 00219 00225 void setReleaseGroup(ReleaseGroup *releaseGroup); 00226 00227 private: 00228 00229 ReleaseGroup *releaseGroup; 00230 }; 00231 00239 class MB_API TrackResult : public Result 00240 { 00241 public: 00242 00246 TrackResult(Track *track, int score); 00247 00251 ~TrackResult(); 00252 00258 Track *getTrack(); 00259 00265 void setTrack(Track *track); 00266 00267 private: 00268 00269 Track *track; 00270 }; 00271 00272 } 00273 00274 #endif