The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Как пользователи могут злоупотреблять сигналами (и почему некоторые думают что это хорошо)

Теперь когда вы знаете как создавать сигналы которые пользователь может легко подключать в любой точке эмиссии сигнала благодаря g_signal_connect, g_signal_connect_after и G_SIGNAL_RUN_LAST, пришло время изучить как ваши пользователи могут заморочить вас. Это интересно, чтобы знать как вы сами можете заморочить других людей. Что заставит вас чувствовать себя хорошо.

Пользователи могут:

В обоих случаях настоящий программист должен быть осторожен на столько на сколько это возможно создавая код который отвергает факт что обработчик сигнала по умолчанию может не выполниться. Это очевидно не касается случая в примере используемом в предыдущем разделе, так как запись файла зависит от того выполнен или нет обработчик по умолчанию (однако, вашей целью может быть: позволить пользователю предотвратить запись файла если он хочет).

Если вы просто хотите остановить эмиссию сигнала из одной callback-функции подключенной вами, вы можете вызвать g_signal_stop_by_name. Это очень просто поэтому я не буду описывать подробно.

Если по умолчанию обработчик сигнала является просто указателем классовой функции, возможно переписать его самостоятельно из типовой функции class_init которая унаследована у родителя. В этом случае, когда издаётся сигнал, родительский класс будет использовать функцию обеспеченную потомком как обработчик сигнала по умолчанию. Конечно, также возможно (и рекомендуется) соединять потомка с родительским обработчиком сигнала по умолчанию гарантируя целостность родительского объекта.

Перезапись классового метода и формирование цепочек было продемонстрировано в “Object methods” поэтому я не стану показывать здесь как это делается снова.


ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList