Определение 15.89. Функция override-next-handler


(override-next-handler <выражение>*)

Ниже приведены примеры использования функций call-next-handler и override-next-handler (см. также рис. 15.32).

Рис. 15.32. Использование функций call-next-handler и override-next-handler

Пример 15.35. Использование функций call-next-handler и override-next-handler

(clear)

(defclass A (is-a USER) (role concrete))

(defmessage-handler A print-args ($?any)

(printout t "A: " ?any crlf)

(if (next-handlerp) then

(call-next-handler)))

(defmessage-handler USER print-args ($?any)

(printout t "USER: " ?any crlf))

(make-instance a of A)

(send [a] print-args 1234)

(defmessage-handler A print-args ($?any)

(printout t "A: " ?any crlf)

(if (next-handlerp) then

(override-next-handier (rest$ ?any))))

(send [a] print-args 1234)

Для получения всех конструкторов definstances, определенных в задан­ном модуле, предназначена функция get-definstances-list. Функция def instances-module служит для определения модуля, в котором использует­ся заданный конструктор definstances. Синтаксис этих функций приведен ниже.

 

Определение 15.90. Функции get-def instances-list и def instances-module

(get-definstances-list [<имя-модуля>])

(definstances-module <имя-конструктора>)

Функция init-slots предназначена для выполнения процедуры инициали­зации слотов. Она доступна только в обработчиках сообщений класса. Обычно функция автоматически вызывается командами make-instance и initzializate-instance.

Определение 15.91. Функция init-slots

(init-slots)

Функции unmake-instanceи delete-instance удаляют некоторый объект, а функция delete-instance предназначена для использования внутри обработ­чиков сообщений и удаляет активный объект, unmake-instance может ис­пользоваться вне определения обработчиков сообщений, поэтому требует указания объекта, который необходимо удалить.

 

Определение 15.92. Функции unmake-instance и delete-instance

 

(unmake-instance <имя-или-адрес-объекта>+)

(delete-instance)

Для определения класса, имени и адреса объекта служат функции class, instance-name и instance-address соответственно.



Дата добавления: 2021-12-14; просмотров: 351;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.