so_4: Доступные заголовочные файлы run-time

Раздельные пространства имен rt и api

Доступный API SObjectizer-а разбит на различные пространства имен, в зависимости от назначения тех или иных функций и классов SObjectizer-а (например, so_4::mutex, so_4::rt и so_4::api). Пространства имен so_4::rt и so_4::api содержат средства для управления агентами и run-time SObjectizer. Поэтому, на первый взгляд, пространства имен so_4::rt и so_4::api можно было объединить в одно.

Однако, все описанные в so_4::rt средства могут применяться только самими агентами и so_4::rt предназначено для реализации агентов. Тогда как функции из so_4::api могут использоваться не только агентами (т.е. не только внутри работающего run-time), но и в других частях программы.

Например, можно представить себе GUI-приложение, написаное с использованием MFC. Часть этого приложения будет использовать SObjectizer и реализовывать прикладную логику работы. Для этой части предназначается so_4::rt. Другая часть приложения отвечает только за интерфейс пользователя и управляет прикладной логикой -- т.е. отсылает сообщения в SObjectizer. Для этой части предназначено пространство имен so_4::api.

Стандартные заголовочные файлы

В каталоге so_4/rt/h находятся заголовочные файлы с описанием содержимого пространства имен so_4::rt. Из всего содержимого so_4/rt/h стандартными являются только файлы so_4/rt/h/comm_buf.hpp, so_4/rt/h/rt.hpp и so_4/rt/h/msg_auto_ptr.hpp. Т.е. гарантируется, что эти файлы будут присутствовать в следующих версиях SObjectizer-а 4-го поколения (т.е. SO-4).

Поэтому, для использования содержимого so_4::rt в программе необходимо использовать директиву:

  #include <so_4/rt/h/rt.hpp>

Если из so_4::rt требуется только so_4::rt::comm_buf_t, то достаточно подключать только so_4/rt/h/comm_buf.hpp.

Если требуется so_4::rt::msg_auto_ptr_t, то подключать so_4/rt/h/msg_auto_ptr.hpp необходимо даже, если so_4/rt/h/rt.hpp уже подключен.


Документация по SObjectizer. Последние изменения: Thu Jan 12 10:52:50 2006. Создано системой  doxygen 1.4.6-NO
Hosted by uCoz