#pragma once // ── FikoSurecYoneticiPanel — merkezi süreç yöneticisi (görev yöneticisi) dashboard ── // Eski FikoSureclerPanel'in yerini alır (fiko_panel.hpp'den TAŞINDI + zenginleşti): // • sıralanabilir süreç tablosu (PID/belge/uptime/durum/bellek) + seçim // • eylemler: Sonlandır (nazik) / Zorla / Komut+Param / Broadcast / Odakla (guard'lı) // • canlı olay akışı (forward edilen olaylar; süreç-başına + birleşik, clipper'lı filtre) // • süreç listesi diff'iyle SurecKatildi/Ayrildi/DurumDegisti olayları yayınlar // SurecKopru (IPC) + Cekirdek (menü/olay) ctor-ref. main.cpp yalnız kayıt + drain besler. #include #include #include #include "fiko/platform/pencere.hpp" // Pencere tam tanım (fiko_panel.hpp cam wrapper'ı ÖNCE ister) #include "fiko_panel.hpp" // FikoPanel taban + UygulamaBaglam #include "surec_kopru.hpp" // SurecKopru / SurecBilgi / ForwardOlay namespace fiko { class Cekirdek; class FikoSurecYoneticiPanel : public FikoPanel { public: FikoSurecYoneticiPanel(SurecKopru& kopru, Cekirdek& cek) : kopru_(kopru), cek_(cek) {} void degistir(); // toggle (kapanışta OlayAboneIptal yayınlar) bool acikMi() const { return acik_; } // main.cpp forward drain'i besler (kaynakPid'li olay → süreç-başına akış). void olayEkle(const ForwardOlay& fo); const char* baslik() const override { return "Fiko Orchestrator"; } bool aktif(const UygulamaBaglam&) const override { return acik_; } void ciz(UygulamaBaglam&) override; private: void nodeSeridi(); // Orchestrator node kartları (g_orkestraKule.defter()) void listeyiYenile(); // throttle'lı süreç listesi + katildi/ayrildi/durum diff void surecTablosu(); // sıralanabilir tablo + seçim void eylemPaneli(); // Sonlandır/Zorla/Komut+Param/Broadcast/Odakla (guard'lı) void olayAkisi(); // forward olay akışı (clipper + filtre) SurecKopru& kopru_; Cekirdek& cek_; bool acik_ = false; // Seçim + komut/param girişi. uint32_t hedefPid_ = 0; std::string seciliKomut_; char komutFiltre_[64] = ""; char pKey_[4][48] = {}; char pVal_[4][64] = {}; // Süreç listesi önbelleği + diff durumu. std::vector liste_; double sonYenile_ = -1.0; bool diffKuruldu_ = false; // ilk yenilemede seed (SurecKatildi spam'i önle) std::vector> oncekiDurum_; // (pid, durum) — diff için // Forward olay akışı (ring; kaynakPid taşır). std::vector olaylar_; char olayFiltre_[64] = ""; bool sadeceSecili_ = false; // Görev (D3) oluşturma formu. char taskTur_[64] = ""; // Onay diyaloğu durumu (sonlandırma). uint32_t onayPid_ = 0; bool onayZorla_ = false; }; } // namespace fiko