track and display in web view the number of games actually joined

rather than the number attempted.
This commit is contained in:
eehouse 2010-05-28 02:31:27 +00:00
parent f5ac51ae73
commit 8bb2fb9b09
4 changed files with 24 additions and 11 deletions

View file

@ -617,6 +617,7 @@ CookieRef::handleEvents()
break;
case XWA_SENDALLHERE:
CRefMgr::Get()->IncrementFullCount();
cancelAllConnectedTimer();
assignHostIds();
assignConnName();

View file

@ -61,6 +61,7 @@ CRefMgr::CRefMgr()
/* should be using pthread_once() here */
pthread_mutex_init( &m_SocketStuffMutex, NULL );
pthread_mutex_init( &m_nextCIDMutex, NULL );
pthread_mutex_init( &m_roomsFilledMutex, NULL );
pthread_mutex_init( &m_freeList_mutex, NULL );
pthread_rwlock_init( &m_cookieMapRWLock, NULL );
}
@ -210,13 +211,19 @@ CRefMgr::nextCID( const char* connName )
return ++m_nextCID;
} /* nextCID */
int
CRefMgr::GetNumGamesSeen( void )
void
CRefMgr::IncrementFullCount( void )
{
MutexLock ml(&m_nextCIDMutex);
return m_nextCID;
MutexLock ml( &m_roomsFilledMutex );
++m_nRoomsFilled;
}
int
CRefMgr::GetNumRoomsFilled( void )
{
MutexLock ml(&m_roomsFilledMutex);
return m_nRoomsFilled;
}
int
CRefMgr::GetSize( void )
@ -227,7 +234,7 @@ CRefMgr::GetSize( void )
void
CRefMgr::GetStats( CrefMgrInfo& mgrInfo )
{
mgrInfo.m_nCrefsAll = GetNumGamesSeen();
mgrInfo.m_nRoomsFilled = GetNumRoomsFilled();
mgrInfo.m_startTimeSpawn = m_startTime;
if ( 0 == m_ports.length() ) {

View file

@ -63,7 +63,7 @@ class CrefInfo {
class CrefMgrInfo {
public:
const char* m_ports;
int m_nCrefsAll;
int m_nRoomsFilled;
int m_nCrefsCurrent;
time_t m_startTimeSpawn;
vector<CrefInfo> m_crefInfo;
@ -108,7 +108,9 @@ class CRefMgr {
void PrintSocketInfo( int socket, string& out );
SocketsIterator MakeSocketsIterator();
int GetNumGamesSeen( void );
void IncrementFullCount( void );
int GetNumRoomsFilled( void );
int GetSize( void );
time_t uptime();
@ -153,6 +155,9 @@ class CRefMgr {
pthread_mutex_t m_nextCIDMutex;
CookieID m_nextCID;
pthread_mutex_t m_roomsFilledMutex;
int m_nRoomsFilled;
pthread_rwlock_t m_cookieMapRWLock;
CookieMap m_cookieMap;

View file

@ -98,7 +98,7 @@ send_meta( FILE* fil, const CrefMgrInfo* info )
}
}
fprintf( fil, "<title>relay: %d/%d</title>\n", info->m_nCrefsAll,
fprintf( fil, "<title>relay: %d/%d</title>\n", info->m_nRoomsFilled,
info->m_nCrefsCurrent );
fprintf( fil, "</head>" );
}
@ -189,11 +189,11 @@ printStats( FILE* fil, const CrefMgrInfo* info, bool isLocal )
fprintf( fil, "<table>" );
fprintf( fil, "<tr>"
"<th>Ports</th><th>Uptime</th><th>Spawns</th><th>Spawn Utime</th>"
"<th>Games played</th><th>Games in play</th></tr>" );
"<th>Rooms filled</th><th>Games in play</th></tr>" );
fprintf( fil, "<tr><td>%s</td><td>%s</td><td>%d</td>"
"<td>%s</td><td>%d</td><td>%d</td></tr>\n",
info->m_ports, uptime1, GetNSpawns(), uptime2, info->m_nCrefsAll,
info->m_nCrefsCurrent );
info->m_ports, uptime1, GetNSpawns(), uptime2,
info->m_nRoomsFilled, info->m_nCrefsCurrent );
fprintf( fil, "</table>" );
}