Ignore:
Timestamp:
Jul 1, 2008, 6:23:14 PM (17 years ago)
Author:
cinc
Message:

Put info for NOM compiler in emitted *.h files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/idl-compiler/h-emitter_c/h_file_emitter.c

    r376 r379  
    5757  fprintf(fh, "#ifndef %s_H\n#define %s_H\n\n", pif->chrName, pif->chrName);
    5858
     59  fprintf(fh, "#ifndef NOMCOMPILER\n");
     60
    5961  fprintf(fh, "#include <glib.h>\n");
    6062  fprintf(fh, "#include <nomcls.h> /* This is needed for _nomNew() */\n\n");
     
    6365  fprintf(fh, "extern \"C\" {\n");
    6466  fprintf(fh, "#endif /* __cplusplus */\n\n");
    65 
    66   fprintf(fh, "#ifndef NOMCOMPILER\n");
    6767 
    6868  /* Define the name as an object */
     
    352352{
    353353  FILE* fh=pLocalPI->outFile;
    354   GPtrArray *pArray;
    355354  int a;
     355
     356  fprintf(fh, "#else /* NOMCOMPILER */\n");
     357
     358  emitInterfaceIncludes(pLocalPI, pif);
     359
     360  /* Output all interfaces */
     361  for(a=0; a<pLocalPI->pInterfaceArray->len; a++)
     362  {
     363    PINTERFACE pifAll=g_ptr_array_index(pLocalPI->pInterfaceArray, a);
     364    int b;
     365     
     366    if(pifAll->fIsForwardDeclaration)
     367    {
     368      fprintf(fh, "interface %s;\n", pifAll->chrName);
     369    }
     370    else
     371    {
     372      GPtrArray *pArray;
     373
     374      pArray=pifAll->pMethodArray;
     375
     376      fprintf(fh, "#ifndef %s_INTERFACE\n", pifAll->chrName);
     377      fprintf(fh, "#define %s_INTERFACE\n", pifAll->chrName);
     378
     379      fprintf(fh, "interface %s", pifAll->chrName);
     380
     381      if(pifAll->chrParent)
     382      {
     383        fprintf(fh, " : %s", pif->chrParent);
     384      }
     385     
     386      fprintf(fh, "\n{\n");
     387     
     388      /* Print known methods */
     389      for(b=0; b<pArray->len; b++)
     390      {
     391        PMETHOD pm=(PMETHOD)g_ptr_array_index(pArray, b);
     392       
     393        fprintf(fh, "    ");
     394       
     395        emitReturnTypeForNOMCompiler(pLocalPI, pifAll, pm);
     396       
     397        fprintf(fh, " %s(", pm->chrName); /* Methodname */
     398        emitMethodParamsForNOMCompiler(pLocalPI, pifAll, pm->pParamArray);
     399        fprintf(fh, ");\n");     
     400      } /* for */
     401      fprintf(fh, "}\n"); 
     402      fprintf(fh, "#endif /* %s_INTERFACE */\n", pifAll->chrName);
     403    }
     404   
     405  }
    356406 
    357   pArray=pif->pMethodArray;
    358  
    359   fprintf(fh, "#else /* NOMCOMPILER */\n");
    360 
    361   emitInterfaceIncludes(pLocalPI, pif);
    362 
    363   fprintf(fh, "interface %s", pif->chrName);
    364   if(pif->chrParent)
    365   {
    366     fprintf(fh, " : %s", pif->chrParent);
    367   }
    368   fprintf(fh, "\n{\n");
    369  
    370   /* Print known methods */
    371   for(a=0;a<pArray->len;a++)
    372   {
    373     int b;
    374     PMETHOD pm=(PMETHOD)g_ptr_array_index(pArray, a);
    375 
    376     fprintf(fh, "    %s(", pm->chrName); /* Methodname */
    377     emitMethodParams(pLocalPI, pif, pm->pParamArray);
    378     fprintf(fh, ");\n");     
    379   }
    380   fprintf(fh, "}\n"); 
    381407  fprintf(fh, "\n#endif /* NOMCOMPILER */\n\n");
    382408}
     
    390416  fprintf(fh, "#endif /* __cplusplus */\n\n");
    391417
     418  emitNomCompilerInfo(pLocalPI, pif);
     419 
    392420  fprintf(fh, "\n#endif /* %s_H */\n", pif->chrName);
    393421}
     
    423451                  emitNewMethods(pLocalPI, pif);
    424452                  emitParentClassMethods(pLocalPI, pif);
    425                   emitNomCompilerInfo(pLocalPI, pif);                 
    426453                  emitHFileFooter(pLocalPI, pif);
    427454                  closeOutfile(pLocalPI->outFile);
Note: See TracChangeset for help on using the changeset viewer.