1 /* 2 * Copyright 2003-2005, Haiku Inc. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 #ifndef _K_PPP_REPORT_MANAGER__H 7 #define _K_PPP_REPORT_MANAGER__H 8 9 #include <OS.h> 10 11 #include <KPPPDefs.h> 12 #include <PPPReportDefs.h> 13 14 #include <TemplateList.h> 15 16 #include <lock.h> 17 #include <util/AutoLock.h> 18 19 20 class KPPPReportManager { 21 public: 22 KPPPReportManager(mutex& lock); 23 ~KPPPReportManager(); 24 25 static bool SendReport(thread_id thread, const ppp_report_packet *report); 26 // returns false if reply was bad (or an error occured) 27 28 void EnableReports(ppp_report_type type, thread_id thread, 29 int32 flags = PPP_NO_FLAGS); 30 void DisableReports(ppp_report_type type, thread_id thread); 31 bool DoesReport(ppp_report_type type, thread_id thread); 32 bool Report(ppp_report_type type, int32 code, void *data, int32 length); 33 // returns false if reply was bad (or an error occured) 34 35 private: 36 mutex& fLock; 37 TemplateList<ppp_report_request*> fReportRequests; 38 }; 39 40 41 #endif 42