You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.3 KiB
70 lines
2.3 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef NETWORKSTRINGTABLECONTAINERSERVER_H
|
|
#define NETWORKSTRINGTABLECONTAINERSERVER_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "inetworkstringtableserver.h"
|
|
#include "utlvector.h"
|
|
#include "bitbuf.h"
|
|
|
|
class CNetworkStringTableServer;
|
|
class client_t;
|
|
class bf_write_t;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Implements game .dll string table interface
|
|
//-----------------------------------------------------------------------------
|
|
class CNetworkStringTableContainerServer : public INetworkStringTableServer
|
|
{
|
|
public:
|
|
// Contstruction
|
|
CNetworkStringTableContainerServer( void );
|
|
~CNetworkStringTableContainerServer( void );
|
|
|
|
// Implement INetworkStringTableServer
|
|
virtual TABLEID CreateStringTable( const char *tableName, int maxentries );
|
|
virtual int GetNumStrings( TABLEID stringTable );
|
|
virtual int GetMaxStrings( TABLEID stringTable );
|
|
|
|
virtual int AddString( TABLEID stringTable, const char *value, int length = 0, const void *userdata = 0 );
|
|
virtual void SetString( TABLEID stringTable, int stringNumber, const char *value );
|
|
virtual void SetStringUserData( TABLEID stringTable, int stringNumber, int length = 0, const void *userdata = 0 );
|
|
virtual const char *GetString( TABLEID stringTable, int stringNumber );
|
|
virtual const void *GetStringUserData( TABLEID stringTable, int stringNumber, int *length = 0 );
|
|
|
|
virtual int FindStringIndex( TABLEID stringTable, char const *string );
|
|
|
|
virtual const char *GetTableName( TABLEID stringTable );
|
|
|
|
// Table accessors
|
|
TABLEID FindTable( const char *tableName );
|
|
CNetworkStringTableServer *GetTable( TABLEID stringTable );
|
|
|
|
// Delete all tables
|
|
void RemoveAllTables( void );
|
|
|
|
// Guards so game .dll can't create tables at the wrong time
|
|
void AllowCreation( void );
|
|
void DisallowCreation( void );
|
|
|
|
// Print table data to console
|
|
void Dump( void );
|
|
|
|
private:
|
|
// Guard
|
|
bool m_bAllowCreation;
|
|
|
|
CUtlVector < CNetworkStringTableServer * > m_Tables;
|
|
};
|
|
|
|
extern CNetworkStringTableContainerServer *networkStringTableContainerServer;
|
|
|
|
#endif // NETWORKSTRINGTABLECONTAINERSERVER_H
|