/Desktop/MGS-MultithreadedGameServer/Game.h

Vai alla documentazione di questo file.
00001 //
00002 // File: Game.h
00003 // Created by: <Detro /> aka Ivan De Marino 
00004 // <detro@mandolinux.org, demarino@studenti.unina.it, demarino@na.astro.it>
00005 // Created on: Sun Oct 24 18:47:49 2004
00006 //
00007 
00008 #ifndef _GAME_H_
00009 #define _GAME_H_
00010 
00011 #include <cc++/thread.h>
00012 #include "Player.h"
00013 
00014 #ifdef  CCXX_NAMESPACES
00015 using namespace std;
00016 using namespace ost;
00017 #endif
00018 
00019 /**
00020  * @interface Game Game.h
00021  * Game per MGS.
00022  * Questa <b>Classe Astratta</b> e' un'<b>Interfaccia</b> che
00023  * bisogna <i>implementare</i> per creare un nuovo Game su MGS.<br>
00024  * E' sufficientemente astratta da poter implementare non solo 
00025  * Giochi (come vederemo con la classe <code>ChatRoom</code>), ma
00026  * ogni tipo di Attivita' che si basi sul semplice scambio
00027  * di messaggi alfanumerici (es. Scacchi, Dama, Giochi di Carte,...). <br>
00028  * E' un @c Thread, quindi un flusso di controllo a se stante. */
00029 class Game : public Thread {
00030    public:
00031       /** Inizializzazione del @c Game */
00032       virtual void init(void) = 0;
00033       /** Attivazione del @c Game */
00034       virtual void run(void) = 0;
00035       /** Gestione della Chiusura del @c Game */
00036       virtual void final(void) = 0;
00037       
00038       /** 
00039        * Aggiungi un <code>Player</code> al <code>Game</code>.
00040        *
00041        * @param Player* Puntatore al Player da aggiungere al Gioco */
00042       virtual void addPlayer (Player *) = 0;
00043       
00044       /** 
00045        * Rimuovi un <code>Player</code> dal <code>Game</code>.
00046        * @param string& Stringa contenente il Nick/Nome del Player da Rimuovere
00047        * @return @c true se il Player viene trovato e rimosso, 
00048        *    @c false altrimenti */
00049       virtual bool delPlayer (const string &) = 0;
00050       
00051       /** 
00052        * Ritorna il numero di Player presenti 
00053        * @return Ritorna il numero di Player presenti nel Game */
00054       virtual int getNumPlayers (void) const = 0;
00055       
00056       /** 
00057        * Stampa la lista di Player presenti
00058        * @param iostream* Input-Output-Stream su cui dirigere l'output */
00059       virtual void printPlayersList(iostream *) = 0;
00060    
00061       /** 
00062        * Ritorna il nome del Game 
00063        * @return Ritorna il Nome del Game */
00064       virtual string getName(void) const = 0;
00065 };
00066 
00067 #endif   //_GAME_H_

Generato il Sun Nov 28 13:27:03 2004 per MGS - Multithreaded Game Server da doxygen 1.3.4