Photon Server API Documentation v5.0RC1

Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Static Protected Attributes | Properties | List of all members
Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T > Class Template Reference

Provides basic functionality for performance counters managers More...

Public Member Functions

 PerfCounterManagerBase ()
 No direct calls to ctor from non-inherited classes. Use GlobalInstance or GetInstance(string). we can't use private ctor More...
 

Static Public Member Functions

static T GetInstance (string instanceName)
 Get and create (if not exist) counters for instance More...
 
static void Initialize (object state=null)
 Initialize counters synchronously More...
 
static void InitializeAsync (string instanceName=null)
 Initialize counters asynchronously. To wait for init complete call WaitForInitializationComplete(int) More...
 
static bool WaitForInitializationComplete (int timeout)
 

Protected Member Functions

void InitializeGlobal (object state)
 Initialize global instance More...
 
void InitializeInstance (string instanceName)
 Initialize specific instance More...
 
virtual IList< ICounterProviderGetCustomCounterProviders ()
 Return list of instances of classes that provides ICounterProvider implementations More...
 
PerformanceCounterCategory GetOrCreateCategory (string categoryName, CounterCreationDataCollection counterCreationData, CountersPermissionLevels permissionLevel)
 Get or create windows performance counter category. More...
 

Static Protected Member Functions

static void InitializeWithDefaults ()
 Dummy method to initiate static ctor More...
 
static bool ValidateCategory (PerformanceCounterCategory category, CounterCreationDataCollection counterCreationData)
 Detects if existing category contains all required counters More...
 

Static Protected Attributes

static readonly ILogger Log = LogManager.GetLogger(typeof(T).FullName)
 
static readonly Dictionary< string, T > Instances = new Dictionary<string, T>()
 
static readonly Dictionary< Type, ICounterProviderCounterProviders = new Dictionary<Type, ICounterProvider>()
 

Properties

static bool isInitialized [get]
 
static T GlobalInstance [get]
 Global instance. Must be initialized before first call More...
 

Detailed Description

Provides basic functionality for performance counters managers

Template Parameters
TChild class
Type Constraints
T :PerfCounterManagerBase<T> 
T :new() 

Constructor & Destructor Documentation

◆ PerfCounterManagerBase()

No direct calls to ctor from non-inherited classes. Use GlobalInstance or GetInstance(string). we can't use private ctor

Member Function Documentation

◆ GetCustomCounterProviders()

virtual IList<ICounterProvider> Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.GetCustomCounterProviders ( )
inlineprotectedvirtual

Return list of instances of classes that provides ICounterProvider implementations

Returns

◆ GetInstance()

static T Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.GetInstance ( string  instanceName)
inlinestatic

Get and create (if not exist) counters for instance

Parameters
instanceName
Returns

◆ GetOrCreateCategory()

PerformanceCounterCategory Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.GetOrCreateCategory ( string  categoryName,
CounterCreationDataCollection  counterCreationData,
CountersPermissionLevels  permissionLevel 
)
inlineprotected

Get or create windows performance counter category.

Parameters
categoryName
counterCreationDataShould contain list of counters that will be added to this category
permissionLevelLevel of user permission relative to perf counters stuff
Returns

◆ Initialize()

static void Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.Initialize ( object  state = null)
inlinestatic

Initialize counters synchronously

◆ InitializeAsync()

static void Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.InitializeAsync ( string  instanceName = null)
inlinestatic

Initialize counters asynchronously. To wait for init complete call WaitForInitializationComplete(int)

◆ InitializeGlobal()

void Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.InitializeGlobal ( object  state)
inlineprotected

Initialize global instance

◆ InitializeInstance()

void Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.InitializeInstance ( string  instanceName)
inlineprotected

Initialize specific instance

Parameters
instanceName

◆ InitializeWithDefaults()

static void Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.InitializeWithDefaults ( )
inlinestaticprotected

Dummy method to initiate static ctor

◆ ValidateCategory()

static bool Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.ValidateCategory ( PerformanceCounterCategory  category,
CounterCreationDataCollection  counterCreationData 
)
inlinestaticprotected

Detects if existing category contains all required counters

Parameters
category
counterCreationData
Returns

◆ WaitForInitializationComplete()

static bool Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.WaitForInitializationComplete ( int  timeout)
inlinestatic

Member Data Documentation

◆ CounterProviders

readonly Dictionary<Type, ICounterProvider> Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.CounterProviders = new Dictionary<Type, ICounterProvider>()
staticprotected

◆ Instances

readonly Dictionary<string, T> Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.Instances = new Dictionary<string, T>()
staticprotected

◆ Log

readonly ILogger Photon.SocketServer.Diagnostics.Counters.PerfCounterManagerBase< T >.Log = LogManager.GetLogger(typeof(T).FullName)
staticprotected

Property Documentation

◆ GlobalInstance

Global instance. Must be initialized before first call

Returns

◆ isInitialized