On Tue, May 15, 2012 at 8:22 PM, chenyangseamoon
<[email protected]> wrote:
> Hi,
> I'm reading nox source code and wondering how does nox install all
> the components and how does them run.
> /* Install the deployer responsible for DSOs. */
>     kernel->install(new Static_component_context(kernel, "built-in DSO
> deployer",
>                     boost::bind(&DSO_deployer::instantiate, kernel,
> lib_dirs, _1, _2),
>                    typeid(DSO_deployer).name(),
>                    platform_configuration), INSTALLED);
> I found the above code in nox_main.cc.
> I also read the Static_component_context class's header file and .cc file.
> 1). Does it create a thread for each component which was parsed from the
> component's json configuration file?
>     And waiting for eventdispatcher to dispatch some event? And if the event
> handler is registed in the component's configure or install
> function,this event will be handled by the components?
>     2). Or nox doesn't create a thread for each component.
>         When an event was dispatched, nox just find the event name in the
> hash_map<Event, EventFilterChain> filter_chains
> and the hash_map<contianer::Component_name, int> EventFilterChain and invoke
> the registered handler functions in each component?
>
>
> Chen Yang
>
>
> 2012-05-16
> ________________________________
> chenyangseamoon

The latter is correct. For each request, the dispatcher invokes the
registered callbacks (handlers) in the order of their priorities.

Amin

Reply via email to