xref: /haiku/src/add-ons/kernel/network/ppp/shared/libkernelppp/headers/KPPPReportManager.h (revision bab64f65bb775dc23060e276f1f1c4498ab7af6c)
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