00001 #ifndef _GEMFIRE_STATISTICS_STATISTICSFACTORY_HPP_
00002 #define _GEMFIRE_STATISTICS_STATISTICSFACTORY_HPP_
00003
00004
00005
00006
00007
00008
00009
00010 #include "../gfcpp_globals.hpp"
00011 #include "StatisticDescriptor.hpp"
00012 #include "StatisticsType.hpp"
00013 #include "../ExceptionTypes.hpp"
00014 #include "Statistics.hpp"
00015
00019 namespace gemfire_statistics {
00020
00041 class CPPCACHE_EXPORT StatisticsFactory {
00042 protected:
00043 StatisticsFactory(){}
00044 StatisticsFactory(const StatisticsFactory &){}
00045
00046 public:
00047
00052 static StatisticsFactory* getExistingInstance();
00053
00054 virtual ~StatisticsFactory() {}
00055
00062 virtual StatisticDescriptor* createIntCounter(const char* name, const char* description,const char* units, int8 largerBetter = true) =0;
00063
00064
00071 virtual StatisticDescriptor* createLongCounter(const char* name, const char* description,const char* units, int8 largerBetter = true)=0;
00072
00073
00080 virtual StatisticDescriptor* createDoubleCounter(const char* name, const char* description, const char* units, int8 largerBetter = true)=0;
00081
00082
00088 virtual StatisticDescriptor* createIntGauge(const char* name, const char* description, const char* units,int8 largerBetter= false)=0;
00089
00090
00096 virtual StatisticDescriptor* createLongGauge(const char* name, const char* description,const char* units,int8 largerBetter= false)=0;
00097
00098
00104 virtual StatisticDescriptor* createDoubleGauge(const char* name, const char* description, const char* units, int8 largerBetter= false)=0;
00105
00106
00114 virtual StatisticsType* createType(const char* name, const char* description,
00115 StatisticDescriptor** stats, int32 statsLength)=0;
00116
00117
00123 virtual StatisticsType* findType(const char* name)=0;
00124
00130 virtual Statistics* createStatistics(StatisticsType* type)=0;
00131
00137 virtual Statistics* createStatistics(StatisticsType* type, const char* textId)=0;
00138
00144 virtual Statistics* createStatistics(StatisticsType* type, const char* textId, int64 numericId)=0;
00145
00151 virtual Statistics* createAtomicStatistics(StatisticsType* type)=0;
00152
00158 virtual Statistics* createAtomicStatistics(StatisticsType* type, const char* textId)=0;
00159
00160
00166 virtual Statistics* createAtomicStatistics(StatisticsType* type, const char* textId, int64 numericId)=0;
00167
00169 virtual Statistics* findFirstStatisticsByType( StatisticsType* type ) = 0;
00170
00174 virtual const char* getName()=0;
00175
00176
00180 virtual int64 getId()=0;
00181
00182 private:
00183 const StatisticsFactory& operator=( const StatisticsFactory& );
00184
00185 };
00186 };
00187
00188 #endif // _GEMFIRE__STATISTICS_STATISTICSFACTORY_HPP_