🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Jacek Marcin Jaw Sat, 03 Feb 2024 05:51
Jakie są dobre zasady programowania programów opartych na wtyczkach?
#291926
Author: Jacek Marcin Jaw
Date: Sat, 03 Feb 2024 05:51
41 lines
2079 bytes
Dzień dobry! (Mimo, że do świtu jeszcze prawie 2,5godz.)

Problem jaki teraz chcę poruszyć to programowanie w C++ programów
opartych o wtyczki. Tylko trik polega na tym, że są to programy
zdarzeniowe czyli używające biblioteki takiej jak Qt.

Model programu mam prosty i logiczny:
Logiki prog.->Narzędzia prog.->Bibl. własne->Bibl. obce

To co dla mnie jest kluczowe, to możliwość rozszerzania logik o wtyczki.
Problem jaki tu występuje, to hazard wynikający z przechodzenia zdarzeń
przez pętlę zdarzeń, która ma to do siebie że nie gwarantuje kiedy
zdarzenie będzie obsłużone. Dlatego wygodny mechanizm sygnał->slot w
przypadku wtyczek odpada (bo program staje się nieprzewidywalny).

W klasycznym ujęciu problem jest rozwiązywany banalnie: przez tablice
wsk. do f. (np. "tablice przerwań programowych" w M$ DOS).
Tylko, że w C++ nie mamy dostępu do tablic f. wirtualnych.

Jednak można sobie zdefiniować tablice f. C jako f. zwrotnych z góry
określoną sygnaturą i je wywoływać z wtyczek. Wadą jest to, że styk
miedzy prog. a wtyczką oparty jest nie na obiektach tylko na czystych f.
C (co oznacza konieczność użycia globalnych zm. we wtyczkach).
W tym przypadku do każdej logiki należało by dodać po jednej tablicy
tych f. C na każde przewidziane działanie wtyczek.

Z drugiej strony są szablony:
Można sobie wyobrazić tablicę obiektów pewnego szablonu (sygnatury f.).
I te obiekty mogą mieć albo wsk. do f. C albo wsk. do o. i f. (zgodnej z
sygnaturą). Tu należy zadbać jedynie o prawidłowe sygnatury f. i
operator porównania który jest konieczny dla f. tablicy removeAll().
To rozwiązanie jest dużo bardziej odlotowe od prostych tablic z f. C,
ale ma tą zaletę, że było by obiektowo i bez zm. globalnych we wtyczkach.

Pyt. są takie:
1. Czy macie jakieś inne pomysły na wywołania zwrotne z prog. do wtyczek?
2. Jak wasze prawdziwe prog. korzystają z wtyczek?
3. Jakbyście pisali nowy prog. oparty o wtyczki to które rozw. byście
wybrali?

Miłej sob. i nie.!
Jacek Marcin Jaworski
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads