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
|
// Copyright (C) 2011, 2014 Ben Asselstine
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program 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 Library General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
// 02110-1301, USA.
#pragma once
#ifndef PROFILE_H
#define PROFILE_H
#include <gtkmm.h>
class XML_Helper;
//! A single entry in the profile list.
/**
* This is an identity that the user assumes when playing a network game.
*/
class Profile
{
public:
//! The xml tag of this object in a profiles file.
static Glib::ustring d_tag;
//! Loading constructor.
/**
* Make a new profile object by reading it in from an opened profiles
* file.
*
* @param helper The opened profiles file to read the profile from.
*/
Profile(XML_Helper* helper);
//! Default constructor.
/**
* Make a new profile object.
*/
Profile(Glib::ustring nickname);
//! Copy constructor
Profile(const Profile &orig);
//! Destructor.
virtual ~Profile() {};
// Get Methods
//! Get the guid of the profile.
Glib::ustring getId() const {return d_id;};
//! Get the name of the profile.
Glib::ustring getNickname() const {return d_nickname;};
//! Get the date of the last time this profile played a network game.
Glib::TimeVal getLastPlayedOn() const {return d_last_played_date;};
//! Get the date of when this profile was created.
Glib::TimeVal getCreatedOn() const {return d_creation_date;};
//! Get the user name of the profile.
Glib::ustring getUserName() const {return d_user;};
// Methods that operate on the class data but do not modify it.
//! Save the profile to an opened file.
bool save(XML_Helper* helper) const;
//! Save the profile, but not the enclosing tags.
bool saveContents(XML_Helper *helper) const;
// Methods that operate ont he class and modify it.
//! This profile is engaging in a game. Record the date.
void play();
// Static Methods
/**
* static load function (see XML_Helper)
*
* @param helper the XML_Helper instance for the profiles file.
*/
static Profile* handle_load(XML_Helper *helper);
protected:
// DATA
//! The id of the game.
Glib::ustring d_id;
Glib::ustring d_nickname;
Glib::ustring d_user;
Glib::TimeVal d_creation_date;
Glib::TimeVal d_last_played_date;
};
#endif // PROFILE_H
|