def _generate_client_h(self, api):
self.emit_raw(stone_warning)<EOL>self.emit('<STR_LIT>')<EOL>import_classes = [<EOL>fmt_routes_class(ns.name, self.args.auth_type)<EOL>for ns in api.namespaces.values()<EOL>if ns.routes and self.namespace_to_has_routes[ns]<EOL>]<EOL>import_classes.append('<STR_LIT>')<EOL>import_classes.append('<STR_LIT>')<EOL>self._generate_imports_m(import_classes)<EOL>self.emit()<EOL>self.emit('<STR_LIT>')<EOL>self.emit()<EOL>self.emit('<STR_LIT>'.format(self.args.transport_client_name))<EOL>self.emit()<EOL>self.emit(comment_prefix)<EOL>description_str = (<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>)<EOL>self.emit_wrapped_text(description_str, prefix=comment_prefix)<EOL>self.emit(comment_prefix)<EOL>with self.block_h(<EOL>self.args.class_name,<EOL>protected=[<EOL>('<STR_LIT>',<EOL>'<STR_LIT>'.format(self.args.transport_client_name))<EOL>]):<EOL><INDENT>self.emit()<EOL>for namespace in api.namespaces.values():<EOL><INDENT>if namespace.routes and self.namespace_to_has_routes[namespace]:<EOL><INDENT>class_doc = '<STR_LIT>'.format(<EOL>fmt_var(namespace.name))<EOL>self.emit_wrapped_text(class_doc, prefix=comment_prefix)<EOL>prop = '<STR_LIT>'.format(fmt_var(namespace.name))<EOL>typ = '<STR_LIT>'.format(<EOL>fmt_routes_class(namespace.name, self.args.auth_type))<EOL>self.emit(fmt_property_str(prop=prop, typ=typ))<EOL>self.emit()<EOL><DEDENT><DEDENT>client_args = fmt_func_args_declaration(<EOL>[('<STR_LIT>',<EOL>'<STR_LIT>'.format(self.args.transport_client_name))])<EOL>description_str = (<EOL>'<STR_LIT>')<EOL>self.emit_wrapped_text(<EOL>description_str.format(self.args.class_name),<EOL>prefix=comment_prefix)<EOL>init_signature = fmt_signature(<EOL>func='<STR_LIT>',<EOL>args=client_args,<EOL>return_type='<STR_LIT>')<EOL>self.emit('<STR_LIT>'.format(init_signature))<EOL>self.emit()<EOL><DEDENT>self.emit()<EOL>self.emit('<STR_LIT>')<EOL>
Generates client base header file. For each namespace, the client will
        have an object field that encapsulates each route in the particular namespace.