/** * RobloxTaskScheduler.h * Copyright (c) 2013 ROBLOX Corp. All Rights Reserved. */ #pragma once // Roblox Headers #include "rbx/TaskScheduler.h" // Roblox Studio Headers #include "RobloxReportView.h" class TSJobItem; class ArbiterItem: public RobloxCategoryItem { public: ArbiterItem() {} TSJobItem* getOrCreateTSJobItem(boost::shared_ptr pJob); }; class TSJobItem: public QTreeWidgetItem { public: TSJobItem(ArbiterItem* pParentItem, boost::shared_ptr pJob); boost::shared_ptr getJob() { return m_pJob; } void updateValues(); private: boost::shared_ptr m_pJob; }; class RobloxTaskScheduler : public RobloxReportView { Q_OBJECT public: RobloxTaskScheduler(); virtual ~RobloxTaskScheduler(); public Q_SLOTS: void setVisible(bool visible); private Q_SLOTS: void updateValues(); private: typedef std::vector > Jobs; typedef std::map, ArbiterItem*> ArbiterItemsMap; typedef std::set TSJobItemCollection; ArbiterItem* getOrCreateArbiterItem(boost::shared_ptr pArbiter); void syncTSJobItems(const TSJobItemCollection ¤tTaskSchedulerItems); ArbiterItemsMap m_arbiterMap; TSJobItemCollection m_TSJobItems; QTimer *m_pTimer; };