Logo
~Sockets~
~Examples~
~Contact~


PlayerFactory Class Reference

Player list container. More...

#include <PlayerFactory.h>

Inheritance diagram for PlayerFactory:

Inheritance graph
[legend]
Collaboration diagram for PlayerFactory:

Collaboration graph
[legend]
List of all members.

Public Types

typedef std::vector< PLAYER * > player_v

Public Member Functions

 PlayerFactory ()
 File .
virtual ~PlayerFactory ()
void Load ()
void Save ()
PLAYERFindPlayer (const std::string &n, const std::string &p)
PLAYERAddPlayer (const std::string &n, const std::string &p)

Private Attributes

player_v m_players

Classes

struct  PLAYER
 Player properties struct. More...

Detailed Description

Player list container.

Definition at line 36 of file PlayerFactory.h.


Member Typedef Documentation

typedef std::vector<PLAYER *> PlayerFactory::player_v

Definition at line 58 of file PlayerFactory.h.


Constructor & Destructor Documentation

PlayerFactory::PlayerFactory (  ) 

File .

........ PlayerFactory.cpp Published .... 2004-05-15 Author ....... grymse@alhem.net

Definition at line 30 of file PlayerFactory.cpp.

00031 :IPersist()
00032 {
00033 }

PlayerFactory::~PlayerFactory (  )  [virtual]

Definition at line 36 of file PlayerFactory.cpp.

00037 {
00038 }


Member Function Documentation

void PlayerFactory::Load (  )  [virtual]

Implements IPersist.

Definition at line 41 of file PlayerFactory.cpp.

References m_players.

00042 {
00043         FILE *fil = fopen("players.txt","rt");
00044         if (fil)
00045         {
00046                 char slask[1000];
00047                 fgets(slask,1000,fil);
00048                 while (!feof(fil))
00049                 {
00050                         while (strlen(slask) && (slask[strlen(slask) - 1] == 13 || slask[strlen(slask) - 1] == 10))
00051                         {
00052                                 slask[strlen(slask) - 1] = 0;
00053                         }
00054                         long nr = atol(slask);
00055                         fgets(slask,1000,fil);
00056                         while (strlen(slask) && (slask[strlen(slask) - 1] == 13 || slask[strlen(slask) - 1] == 10))
00057                         {
00058                                 slask[strlen(slask) - 1] = 0;
00059                         }
00060                         std::string name = slask;
00061                         fgets(slask,1000,fil);
00062                         while (strlen(slask) && (slask[strlen(slask) - 1] == 13 || slask[strlen(slask) - 1] == 10))
00063                         {
00064                                 slask[strlen(slask) - 1] = 0;
00065                         }
00066                         std::string passwd = slask;
00067                         PLAYER *p = new PLAYER(nr,name,passwd);
00068                         m_players.push_back(p);
00069                         //
00070                         fgets(slask,1000,fil);
00071                 }
00072         }
00073 }

void PlayerFactory::Save (  )  [virtual]

Implements IPersist.

Definition at line 76 of file PlayerFactory.cpp.

References m_players.

Referenced by SmallSocket::OnLine().

00077 {
00078         FILE *fil = fopen("players.0","wt");
00079         if (fil)
00080         {
00081                 for (player_v::iterator it = m_players.begin(); it != m_players.end(); it++)
00082                 {
00083                         PLAYER *p = *it;
00084                         fprintf(fil,"%ld\n",p -> nr);
00085                         fprintf(fil,"%s\n",p -> m_name.c_str());
00086                         fprintf(fil,"%s\n",p -> m_passwd.c_str());
00087                 }
00088                 fclose(fil);
00089                 unlink("players.old");
00090                 rename("players.txt","players.old");
00091                 rename("players.0","players.txt");
00092         }
00093 }

PlayerFactory::PLAYER * PlayerFactory::FindPlayer ( const std::string &  n,
const std::string &  p 
)

Definition at line 96 of file PlayerFactory.cpp.

References m_players.

Referenced by SmallSocket::OnLine().

00097 {
00098         for (player_v::iterator it = m_players.begin(); it != m_players.end(); it++)
00099         {
00100                 PLAYER *p = *it;
00101                 if (p -> m_name == n) // && p -> passwd == p)
00102                 {
00103                         return p;
00104                 }
00105         }
00106         return NULL;
00107 }

PlayerFactory::PLAYER * PlayerFactory::AddPlayer ( const std::string &  n,
const std::string &  p 
)

Definition at line 110 of file PlayerFactory.cpp.

References m_players.

Referenced by SmallSocket::OnLine().

00111 {
00112         PLAYER *p = new PLAYER(0,n,pw);
00113         m_players.push_back(p);
00114         p -> nr = m_players.size(); // never delete any player
00115         return p;
00116 }


Member Data Documentation

Definition at line 71 of file PlayerFactory.h.

Referenced by AddPlayer(), FindPlayer(), Load(), and Save().


The documentation for this class was generated from the following files:
Page, code, and content Copyright (C) 2006 by Anders Hedström
Generated on Mon Aug 29 20:21:47 2005 for C++ Sockets by  doxygen 1.4.4