const char * idl_getCorbaModeStr(void) { const char *str = NULL; /** @internal * @bug OSPL-3369 Have confirmed this is only used in output (where * it leaked previously) */ if (idl_getIsISOCppTypes()) return "ISO/IEC C++ 2003"; switch (corba_mode) { case IDL_MODE_ORB_BOUND: str = "CORBA"; break; case IDL_MODE_STANDALONE: str ="STANDALONE"; break; case IDL_MODE_UNKNOWN: default: str = "<unknown>"; break; } return str; }
int idl_languageAndModeSupported(void) { int is_ok = idl_supportedLanguageAndMode[lang][corba_mode]; if (is_ok) { /** @internal * @bug OSPL-3369 Temporary sanity check for isocpp settings */ if (idl_getIsISOCppTypes() && lang != IDL_LANG_CXX && corba_mode != IDL_MODE_STANDALONE) { is_ok = 0; } } return is_ok; }
static idl_action idl_fileOpen( idl_scope scope, const char *name, void *userData) { idl_tmplExp te; c_char tmplFileName[1024]; c_char *tmplPath; c_char *orbPath; int tmplFile; struct os_stat_s tmplStat; unsigned int nRead; OS_UNUSED_ARG(scope); OS_UNUSED_ARG(userData); tmplPath = os_getenv("OSPL_TMPL_PATH"); orbPath = os_getenv("OSPL_ORB_PATH"); if (tmplPath == NULL) { printf ("OSPL_TMPL_PATH not defined\n"); return (idl_abort); } if (orbPath == NULL) { printf ("OSPL_ORB_PATH not defined\n"); return (idl_abort); } /* Prepare file header template */ if(idl_getIsISOCpp() && idl_getIsISOCppTypes()) snprintf(tmplFileName, sizeof(tmplFileName), "%s%c%s%cISOCxxStreamsIdlInterfaceHeader", tmplPath, OS_FILESEPCHAR, orbPath, OS_FILESEPCHAR); else snprintf(tmplFileName, sizeof(tmplFileName), "%s%c%s%ccorbaStreamsIdlInterfaceHeader", tmplPath, OS_FILESEPCHAR, orbPath, OS_FILESEPCHAR); /* QAC EXPECT 3416; No side effects here */ if ((os_stat(tmplFileName, &tmplStat) != os_resultSuccess) || (os_access(tmplFileName, OS_ROK) != os_resultSuccess)) { printf ("No template found or protection violation (%s)\n", tmplFileName); return (idl_abort); } /* QAC EXPECT 5007; will not use wrapper */ idlpp_template = os_malloc(tmplStat.stat_size+1); tmplFile = open(tmplFileName, O_RDONLY); nRead = (unsigned int)read(tmplFile, idlpp_template, tmplStat.stat_size); memset(&idlpp_template[nRead], 0, tmplStat.stat_size+1-nRead); close(tmplFile); idlpp_macroAttrib = idl_macroAttribNew(IDL_TOKEN_START, IDL_TOKEN_OPEN, IDL_TOKEN_CLOSE); idlpp_macroSet = idl_macroSetNew(); idlpp_inStream = idl_streamInNew(idlpp_template, idlpp_macroAttrib); /* Expand file header */ idl_macroSetAdd(idlpp_macroSet, idl_macroNew("basename", name)); te = idl_tmplExpNew(idlpp_macroSet); idl_tmplExpProcessTmpl(te, idlpp_inStream, idl_fileCur()); idl_streamInFree(idlpp_inStream); idl_tmplExpFree(te); /* Prepare class definition template */ if(idl_getIsISOCpp() && idl_getIsISOCppTypes()) snprintf(tmplFileName, sizeof(tmplFileName), "%s%c%s%cISOCxxStreamsIdlInterface", tmplPath, OS_FILESEPCHAR, orbPath, OS_FILESEPCHAR); else snprintf(tmplFileName, sizeof(tmplFileName), "%s%c%s%ccorbaStreamsIdlInterface", tmplPath, OS_FILESEPCHAR, orbPath, OS_FILESEPCHAR); /* QAC EXPECT 3416; No side effects here */ if ((os_stat(tmplFileName, &tmplStat) != os_resultSuccess) || (os_access(tmplFileName, OS_ROK) != os_resultSuccess)) { printf ("No template found or protection violation (%s)\n", tmplFileName); return (idl_abort); } /* QAC EXPECT 5007; will not use wrapper */ idlpp_template = os_malloc(tmplStat.stat_size+1); tmplFile = open(tmplFileName, O_RDONLY); nRead = (unsigned int)read(tmplFile, idlpp_template, tmplStat.stat_size); memset(&idlpp_template[nRead], 0, tmplStat.stat_size+1-nRead); close(tmplFile); idlpp_indent_level = 0; return idl_explore; /* QAC EXPECT 2006; overview does not get better with one exit */ }