Agar ilovangiz signallarni qayta ishlashi kerak bo'lsa, siz signal ishlov beruvchisini o'rnatishingiz kerak bo'ladi. Muammo shundaki, siz foton funksiyalarini signal ishlovchisidan chaqira olmaysiz, chunki vidjetlar kutubxonasi signal uchun xavfsiz yoki qayta kirish imkoniyatiga ega emas.
Ushbu muammoni hal qilish uchun Foton kutubxonasi signal ishlov beruvchisini o'z ichiga oladi. Siz signalni qayta ishlash funksiyasini ro'yxatdan o'tkazasiz va Photon uni keyin chaqiradi
Fotonning signal ishlov beruvchisi qaytadi
va
Signallarga shu tarzda ishlov berish orqali siz real vaqtda qattiq ishlashga erisha olmaysiz, chunki signalni qayta ishlash funksiyangiz darhol chaqirilmaydi.
Signalni qayta ishlash funktsiyasini qo'shish
S i g n a l n i q a y t a i s h l a s h f u n k t s i y a s i n i q o ' s h i s h uchun PtAppAddSignalProc() funksiyasidan foydalaning. Siz odatda qo'ng'iroq qilasiz
PtAppAddSignalProc() sintaksisi quyidagicha:
int PtAppAddSignalProc( PtAppContext_t ilovasi , sigset_t const * to'plami , PtSignalProc_t funktsiyasi ,
bekor * ma'lumotlar ); Argumentlar quyidagicha:
ilova
Ilova konteksti manzili, ushbu ilova bilan bog'liq barcha m a ' l u m o t l a r n i b o s h q a r a d i g a n P t A p p C o n t e x t _ t tuzilmasi. Standart kontekstdan foydalanish uchun ushbu argument uchun NULLni belgilang .
o'rnatish
Signalni qayta ishlash funktsiyasini chaqirishga olib keladigan signallar to'plamiga ko'rsatgich. Ushbu to'plamni yaratish uchun sigemptyset() va sigaddset() funksiyalaridan foydalaning. Qo'shimcha ma'lumot uchun QNX Neutrino kutubxonasi ma'lumotnomasiga qarang.
func
Signalni qayta ishlash funktsiyasi. Foton kutubxonasi ma'lumotnomasida PtSignalProc_t ga qarang .
ma'lumotlar
Funktsiyaga uzatiladigan har qanday ma'lumotlar.
PtAppAddSignalProc() muvaffaqiyatga erishilganda 0, xatolik yuzaga kelganda esa -1 qaytaradi.
Signalni qayta ishlash funksiyangiz quyidagi prototipga ega:
int signalProcFunctions (int signum
void * data ); Argumentlar quyidagilardir:
imzo
Ishlov beriladigan signal raqami.
ma'lumotlar
P t A p p A d d S i g n a l P r o c ( ) g a q o ' n g ' i r o q d a ko'rsatilgan ma'lumotlar parametri .
S i g n a l i s h l o v b e r u v c h i s i o ʻ r n a t i l g a n b o ʻ l i s h i n i istasangiz, Pt_CONTINUE ni qaytaring . Joriy signal uchun uni olib tashlash uchun Pt_END ni qaytaring (agar funktsiya boshqa signallar uchun ro'yxatdan o'tgan bo'lsa, ular ko'tarilgan bo'lsa ham chaqiriladi).
Dostları ilə paylaş: |