🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Jacek Marcin Jaworski Sat, 03 Feb 2024 04:51
Jakie są dobre zasady programowania programów opartych na wtyczkach?
#310498
Author: Jacek Marcin Jaworski
Date: Sat, 03 Feb 2024 04:51
42 lines
2875 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