@Override protected String processSourceCode() throws Exception { final CodeWriter cw = new CodeWriter( "Client Interfaces Descriptor Builder (extern references to server components.)"); final String name = typeNameProviderItf.getCTypeName(); final String structName = name + "_importeds_desc"; final StringBuilder offset = new StringBuilder(name.toUpperCase()); offset.append("_IMPORTEDS_BASE_OFFSET"); cw.append("static required_interface_desc_t ").append(structName).append( "[] = {").endl(); for (final TypeInterface itf : clientInterfaces) { cw.append("{").endl(); cw.append("\"").append(itf.getName()).append("\", // name").endl(); cw.append("(").append(offset.toString()).append(")").endl(); cw.append("},").endl(); offset.append("\n + sizeof(R").append( itf.getSignature().replace('.', '_')).append(" *)"); } cw.append("};").endl(); return cw.toString(); } }
@Override protected String processSourceCode() throws Exception { final CodeWriter cw = new CodeWriter("Server Interfaces Descriptor"); final String name = typeNameProviderItf.getCTypeName(); final String structName = name + "_exporteds_desc"; // Build provided_interface_desc_t structures final StringBuilder offset = new StringBuilder(); offset.append(name.toUpperCase()).append("_EXPORTEDS_BASE_OFFSET"); cw.append("static provided_interface_desc_t ").append(structName).append( "[] = {").endl(); for (final TypeInterface itf : exportedItfNodes) { cw.append("{").endl(); cw.append("\"").append(itf.getName()).append("\", // name").endl(); cw.append("&(").append(name).append("_").append( itf.getName().replace('-', '_')).append("meth), // vtable").endl(); cw.append("(").append(offset.toString()).append(")").endl(); /* Add the signature */ cw.append("#if defined(TYPEDINTERFACE)").endl(); cw.append(", \"").append(itf.getSignature()).append("\"").endl(); cw.append("#endif").endl(); cw.append("},").endl(); offset.append("\n + sizeof(R").append( itf.getSignature().replace('.', '_')).append(")"); } cw.append("};").endl().endl(); return cw.toString(); } }