def _build_event_handlers(context, components_dict): """ Builds the event handlers for the application :param context: The template context :param components_dict: Dictionary containing components by name (and other info) """ config = context.template.template_config app_section = config.application_section basic_sample_comp = components_dict["basic_sample_comp"] app_file_comp = components_dict["app_file_comp"] app_dir = components_dict["app_dir"] event_handlers = app_section.event_handlers if len(event_handlers) > 0: components_dict["has_events"] = True register_event_handler_def_comp = CodeTemplateComponent( "app/code/register_event_handler_def.code.tmpl") register_event_handler_def_comp.indent_level = 1 app_file_comp.add_child(register_event_handler_def_comp) file_comp = FileTemplateComponent("eventhandlers.py", "app/eventhandlers.py.tmpl") app_dir.add_child(file_comp) for handler_name in event_handlers: handler_section = config.get_event_handler_section( handler_name) code_comp = CodeTemplateComponent( "app/code/events_event_callback.code.tmpl", { "className": handler_section.class_name, "name": handler_name, "topic": handler_section.topic }) file_comp.add_child(code_comp) code_comp = CodeTemplateComponent( "app/code/register_event_handler.code.tmpl", { "className": handler_section.class_name, "topic": handler_section.topic, "callbackName": handler_name, "separateThread": handler_section.separate_thread }) code_comp.indent_level = 1 register_event_handler_def_comp.add_child(code_comp) event_code_comp = CodeTemplateComponent( "sample/basic/code/event.code.tmpl", { "topic": handler_section.topic, "callbackName": handler_name }) event_code_comp.indent_level = 1 basic_sample_comp.add_child(event_code_comp)
def _build_services(context, components_dict): """ Builds the services exposed by the application :param context: The template context :param components_dict: Dictionary containing components by name (and other info) """ config = context.template.template_config app_section = config.application_section basic_sample_comp = components_dict["basic_sample_comp"] app_file_comp = components_dict["app_file_comp"] app_dir = components_dict["app_dir"] service_names = app_section.services requests_file_comp = None if len(service_names) > 0: components_dict["has_services"] = True register_services_def_comp = CodeTemplateComponent( "app/code/register_services_def.code.tmpl") register_services_def_comp.indent_level = 1 app_file_comp.add_child(register_services_def_comp) for service_name in service_names: service = config.get_service_section(service_name) service_create_comp = CodeTemplateComponent( "app/code/service_create.code.tmpl", { "serviceType": service.service_type, "serviceName": service_name }) service_create_comp.indent_level = 1 register_services_def_comp.add_child(service_create_comp) request_handlers = service.request_handlers for handler_name in request_handlers: handler_section = config.get_request_handler_section( handler_name) if requests_file_comp is None: requests_file_comp = FileTemplateComponent( "requesthandlers.py", "app/requesthandlers.py.tmpl") app_dir.add_child(requests_file_comp) code_comp = CodeTemplateComponent( "app/code/requests_request_callback.code.tmpl", { "className": handler_section.class_name, "name": handler_name, "topic": handler_section.topic }) requests_file_comp.add_child(code_comp) code_comp = CodeTemplateComponent( "app/code/service_add_topic.code.tmpl", { "topic": handler_section.topic, "className": handler_section.class_name, "separateThread": handler_section.separate_thread, "callbackName": handler_name }) code_comp.indent_level = 1 register_services_def_comp.add_child(code_comp) request_code_comp = CodeTemplateComponent( "sample/basic/code/request.code.tmpl", { "topic": handler_section.topic, "name": handler_name }) request_code_comp.indent_level = 1 basic_sample_comp.add_child(request_code_comp) code_comp = CodeTemplateComponent( "app/code/service_register.code.tmpl", ) code_comp.indent_level = 1 register_services_def_comp.add_child(code_comp)