1*5a1d355fSStephan Aßmus // StatisticsManager.h 2*5a1d355fSStephan Aßmus 3*5a1d355fSStephan Aßmus #ifndef NET_FS_STATISTICS_MANAGER_H 4*5a1d355fSStephan Aßmus #define NET_FS_STATISTICS_MANAGER_H 5*5a1d355fSStephan Aßmus 6*5a1d355fSStephan Aßmus #include "Locker.h" 7*5a1d355fSStephan Aßmus 8*5a1d355fSStephan Aßmus class BMessage; 9*5a1d355fSStephan Aßmus 10*5a1d355fSStephan Aßmus class Share; 11*5a1d355fSStephan Aßmus class User; 12*5a1d355fSStephan Aßmus 13*5a1d355fSStephan Aßmus class StatisticsManager { 14*5a1d355fSStephan Aßmus private: 15*5a1d355fSStephan Aßmus StatisticsManager(); 16*5a1d355fSStephan Aßmus ~StatisticsManager(); 17*5a1d355fSStephan Aßmus 18*5a1d355fSStephan Aßmus status_t Init(); 19*5a1d355fSStephan Aßmus 20*5a1d355fSStephan Aßmus public: 21*5a1d355fSStephan Aßmus static status_t CreateDefault(); 22*5a1d355fSStephan Aßmus static void DeleteDefault(); 23*5a1d355fSStephan Aßmus static StatisticsManager* GetDefault(); 24*5a1d355fSStephan Aßmus 25*5a1d355fSStephan Aßmus void UserRemoved(User* user); 26*5a1d355fSStephan Aßmus void ShareRemoved(Share* share); 27*5a1d355fSStephan Aßmus 28*5a1d355fSStephan Aßmus void ShareMounted(Share* share, User* user); 29*5a1d355fSStephan Aßmus void ShareUnmounted(Share* share, User* user); 30*5a1d355fSStephan Aßmus 31*5a1d355fSStephan Aßmus status_t GetUserStatistics(User* user, 32*5a1d355fSStephan Aßmus BMessage* statistics); 33*5a1d355fSStephan Aßmus status_t GetUserStatistics(const char* user, 34*5a1d355fSStephan Aßmus BMessage* statistics); 35*5a1d355fSStephan Aßmus 36*5a1d355fSStephan Aßmus status_t GetShareStatistics(Share* share, 37*5a1d355fSStephan Aßmus BMessage* statistics); 38*5a1d355fSStephan Aßmus status_t GetShareStatistics(const char* share, 39*5a1d355fSStephan Aßmus BMessage* statistics); 40*5a1d355fSStephan Aßmus 41*5a1d355fSStephan Aßmus private: 42*5a1d355fSStephan Aßmus class ShareStatistics; 43*5a1d355fSStephan Aßmus struct ShareStatisticsMap; 44*5a1d355fSStephan Aßmus 45*5a1d355fSStephan Aßmus Locker fLock; 46*5a1d355fSStephan Aßmus ShareStatisticsMap* fShareStatistics; 47*5a1d355fSStephan Aßmus 48*5a1d355fSStephan Aßmus static StatisticsManager* fManager; 49*5a1d355fSStephan Aßmus }; 50*5a1d355fSStephan Aßmus 51*5a1d355fSStephan Aßmus #endif // NET_FS_STATISTICS_MANAGER_H 52