xref: /haiku/src/apps/debuganalyzer/model_loader/ThreadModelLoader.h (revision ef8252e1e01692d90c627e7c2aaebc05c9d21458)
1 /*
2  * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef THREAD_MODEL_LOADER_H
6 #define THREAD_MODEL_LOADER_H
7 
8 #include "AbstractModelLoader.h"
9 #include "Model.h"
10 
11 
12 class ThreadModel;
13 
14 
15 class ThreadModelLoader : public AbstractModelLoader {
16 public:
17 								ThreadModelLoader(Model* model,
18 									Model::Thread* thread,
19 									const BMessenger& target,
20 									void* targetCookie);
21 
22 protected:
23 								~ThreadModelLoader();
24 
25 public:
26 			ThreadModel*		DetachModel();
27 
28 protected:
29 	virtual	status_t			PrepareForLoading();
30 	virtual	status_t			Load();
31 	virtual	void				FinishLoading(bool success);
32 
33 private:
34 			// shorthands for the longish structure names
35 			typedef system_profiler_thread_enqueued_in_run_queue
36 				thread_enqueued_in_run_queue;
37 			typedef system_profiler_thread_removed_from_run_queue
38 				thread_removed_from_run_queue;
39 
40 private:
41 			status_t			_Load();
42 
43 private:
44 			Model*				fModel;
45 			Model::Thread*		fThread;
46 			ThreadModel*		fThreadModel;
47 };
48 
49 
50 #endif	// THREAD_MODEL_LOADER_H
51