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