components/postgresql_control.dart
File ini mendefinisikan widget stateful untuk mengontrol layanan PostgreSQL.
Kelas Postgresqlcontrol:
- Sebuah
StatefulWidgetyang membuat status untuk kartu kontrol PostgreSQL.
Kelas _PostgresqlcontrolState:
- Kelas status untuk
Postgresqlcontrol. - Variabel Status:
status: Boolean yang melacak status berjalan dari layanan PostgreSQL._isManualChanging: Sebuah flag untuk mencegah status diperbarui saat operasi mulai/berhenti sedang berlangsung._statusTimer: SebuahTimeryang secara berkala memeriksa status layanan PostgreSQL.postgresPath: Path ke direktori biner PostgreSQL.
_checkPostgresStatus():- Secara asinkron memeriksa apakah proses
postgres.exeberjalan menggunakan utilitascheckProcess(). - Ini memperbarui variabel status
statusyang sesuai.
- Secara asinkron memeriksa apakah proses
sendTerminal(String message):- Fungsi pembantu untuk mengirim pesan log ke
Terminalcontext.
- Fungsi pembantu untuk mengirim pesan log ke
_triggerPostgres(bool value):- Fungsi ini dipanggil saat
SwitchpadaServiceControlCarddiubah. - Jika
valueadalahtrue, ia memulai prosespostgres.exedengan direktori data yang sesuai. - Jika
valueadalahfalse, ia mematikan prosespostgres.exemenggunakankillProcess(). - Ini mengirim pesan log yang sesuai ke terminal.
- Ini memperbarui status
statusdan menggunakan flag_isManualChanginguntuk mencegah kondisi balapan.
- Fungsi ini dipanggil saat
_launchPsql():- Meluncurkan terminal interaktif PostgreSQL (
psql.exe) di jendela terminal baru.
- Meluncurkan terminal interaktif PostgreSQL (
initState():- Menginisialisasi timer pemeriksaan status untuk berjalan setiap 2 detik.
dispose():- Membatalkan timer pemeriksaan status saat widget dibuang.
build():- Mengembalikan widget
ServiceControlCarddengan properti yang sesuai untuk PostgreSQL:serviceName: "PostgreSQL"statusText: "Berjalan" atau "Berhenti"statusColor: Hijau atau merahvalue:statussaat inionChanged: Fungsi_triggerPostgresonLaunch: Fungsi_launchPsql(hanya diaktifkan jika PostgreSQL berjalan)imageAsset: "assets/postgre.png"
- Mengembalikan widget
Komponen ini merangkum semua logika untuk mengelola layanan PostgreSQL, menyediakan antarmuka yang konsisten dan ramah pengguna untuk memulai, menghentikan, dan berinteraksi dengannya.