/*
 * Copyright (c) 2010 Kevin Smith
 * Licensed under the GNU General Public License v3.
 * See Documentation/Licenses/GPLv3.txt for more information.
 */

#pragma once

#include "Swiften/Base/boost_bsignals.h"
#include <boost/shared_ptr.hpp>

#include <string>

namespace Swift {
class GroupRosterItem;
class RosterItem {
	public:
		RosterItem(const std::string& name, GroupRosterItem* parent);
		virtual ~RosterItem();
		boost::signal<void ()> onDataChanged;
		GroupRosterItem* getParent() const;
		void setDisplayName(const std::string& name);
		const std::string& getDisplayName() const;
		virtual const std::string& getSortableDisplayName() const;
	private:
		std::string name_;
		std::string sortableDisplayName_;
		GroupRosterItem* parent_;
};

}