|
Packit |
f70c98 |
/* --------------------------------------------------------------------------
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
libmusicbrainz5 - Client library to access MusicBrainz
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
Copyright (C) 2012 Andrew Hawkins
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
This file is part of libmusicbrainz5.
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
This library is free software; you can redistribute it and/or
|
|
Packit |
f70c98 |
modify it under the terms of the GNU Lesser General Public
|
|
Packit |
f70c98 |
License as published by the Free Software Foundation; either
|
|
Packit |
f70c98 |
version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
libmusicbrainz5 is distributed in the hope that it will be useful,
|
|
Packit |
f70c98 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
f70c98 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
f70c98 |
Lesser General Public License for more details.
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
You should have received a copy of the GNU General Public License
|
|
Packit |
f70c98 |
along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
$Id$
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
----------------------------------------------------------------------------*/
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
#ifndef _MUSICBRAINZ5_ARTIST_H
|
|
Packit |
f70c98 |
#define _MUSICBRAINZ5_ARTIST_H
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
#include <string>
|
|
Packit |
f70c98 |
#include <iostream>
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
#include "musicbrainz5/Entity.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/IPIList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/ReleaseList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/AliasList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/RecordingList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/ReleaseGroupList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/LabelList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/WorkList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/RelationList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/TagList.h"
|
|
Packit |
f70c98 |
#include "musicbrainz5/UserTagList.h"
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
#include "musicbrainz5/xmlParser.h"
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
namespace MusicBrainz5
|
|
Packit |
f70c98 |
{
|
|
Packit |
f70c98 |
class CArtistPrivate;
|
|
Packit |
f70c98 |
class CLifespan;
|
|
Packit |
f70c98 |
class CRating;
|
|
Packit |
f70c98 |
class CUserRating;
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
class CArtist: public CEntity
|
|
Packit |
f70c98 |
{
|
|
Packit |
f70c98 |
public:
|
|
Packit |
f70c98 |
CArtist(const XMLNode& Node=XMLNode::emptyNode());
|
|
Packit |
f70c98 |
CArtist(const CArtist& Other);
|
|
Packit |
f70c98 |
CArtist& operator =(const CArtist& Other);
|
|
Packit |
f70c98 |
virtual ~CArtist();
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
virtual CArtist *Clone();
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
std::string ID() const;
|
|
Packit |
f70c98 |
std::string Type() const;
|
|
Packit |
f70c98 |
std::string Name() const;
|
|
Packit |
f70c98 |
std::string SortName() const;
|
|
Packit |
f70c98 |
std::string Gender() const;
|
|
Packit |
f70c98 |
std::string Country() const;
|
|
Packit |
f70c98 |
std::string Disambiguation() const;
|
|
Packit |
f70c98 |
CIPIList *IPIList() const;
|
|
Packit |
f70c98 |
CLifespan *Lifespan() const;
|
|
Packit |
f70c98 |
CAliasList *AliasList() const;
|
|
Packit |
f70c98 |
CRecordingList *RecordingList() const;
|
|
Packit |
f70c98 |
CReleaseList *ReleaseList() const;
|
|
Packit |
f70c98 |
CReleaseGroupList *ReleaseGroupList() const;
|
|
Packit |
f70c98 |
CLabelList *LabelList() const;
|
|
Packit |
f70c98 |
CWorkList *WorkList() const;
|
|
Packit |
f70c98 |
CRelationListList *RelationListList() const;
|
|
Packit |
f70c98 |
CTagList *TagList() const;
|
|
Packit |
f70c98 |
CUserTagList *UserTagList() const;
|
|
Packit |
f70c98 |
CRating *Rating() const;
|
|
Packit |
f70c98 |
CUserRating *UserRating() const;
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
virtual std::ostream& Serialise(std::ostream& os) const;
|
|
Packit |
f70c98 |
static std::string GetElementName();
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
protected:
|
|
Packit |
f70c98 |
virtual void ParseAttribute(const std::string& Name, const std::string& Value);
|
|
Packit |
f70c98 |
virtual void ParseElement(const XMLNode& Node);
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
private:
|
|
Packit |
f70c98 |
void Cleanup();
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
CArtistPrivate * const m_d;
|
|
Packit |
f70c98 |
};
|
|
Packit |
f70c98 |
}
|
|
Packit |
f70c98 |
|
|
Packit |
f70c98 |
#endif
|