Репликант (BeOS)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Репликант (англ. replicant) — термин операционной системы BeOS и её семействапрограмма, работающая вне оконного интерфейса, непосредственно на рабочем столе; то, что в других операционных системах называется виджетом.

Помимо рабочего стола, другие объекты могут принимать репликанты без ущерба для их работоспособности. Для того, чтобы объект мог принимать репликанты, он должен зарегистрировать себя как контейнер (англ. container). В частности, программа Container, иллюстрирующая возможность принимать репликанты, поставлялась с BeOS 4.5 в качестве демонстрационной программы.

Работа с репликантом[править | править код]

Программа, ответственная за работу репликантов в BeOS — это менеджер файлов Tracker. Если в Tracker`е включена опция Show replicants, он будет рисовать пиктограмму, напоминающую ладонь, в углу окон программ, которые могут работать как репликанты, и в углу самих репликантов. Эта пиктограмма называется Replicant handle. Буксировка этой пиктограммы из окна программы на рабочий стол или в другой контейнер создаёт новый репликант, буксировка пиктограммы существующего репликанта перемещает его, буксировка пиктограммы из репликанта в Trash (мусорную корзину) - удалит этот репликант.

С точки зрения программиста[править | править код]

В момент начала буксировки пиктограммы (Replicant handle) из окна программы работа этой программы полностью прекращается. Состояние программы архивируется в специальный системный объект (BMessage), который потом пересылается туда, куда была брошена пиктограмма. Если у пункта назначения есть возможности контейнера, системный объект BMessage корректно распознаётся, разархивируется и запускается, вследствие чего образуются два (поначалу абсолютно идентичных) экземпляра программы. В дальнейшем эти экземпляры могут вести себя по-разному.

Из этого следует, что

  • Во-первых, в коде программы, которая планируется как репликант, должен быть один главный, выводящий всё на экран объект (BView) - именно он будет перенесён в контейнер.
  • Во-вторых, для этого объекта должны быть определены функции сохранения текущего состояния в объект BMessage и восстановления текущего состояния из объекта BMessage.
  • В-третьих, программа должна быть спроектирована так, чтобы полная остановка в работе, возможно, на несколько секунд, не вызывала ошибок.

С точки зрения пользователя[править | править код]

Применение репликантов в BeOS широко и разнообразно. Многие развлекательные программы поддерживают работоспособность в качестве репликантов; в частности, Интернет-мессенджер Gim-ICQ, Интернет-браузер NetPositive, проигрыватель SoundPlay и др..