From 7460cf6e59ab375783e99abe0e533863af308df0 Mon Sep 17 00:00:00 2001 From: ALEXks Date: Tue, 18 Mar 2025 09:37:20 +0300 Subject: [PATCH] added REMOVE_SPF pass --- src/DirectiveProcessing/insert_directive.cpp | 9 ++- src/DirectiveProcessing/insert_directive.h | 2 +- src/Sapfor.cpp | 19 +++++-- src/Sapfor.h | 6 +- src/Utils/PassManager.h | 4 +- src/Utils/utils.cpp | 14 +++-- src/Utils/utils.h | 2 +- src/Utils/version.h | 2 +- src/VisualizerCalls/get_information.cpp | 40 +++++++++----- src/VisualizerCalls/get_information.h | 58 -------------------- 10 files changed, 63 insertions(+), 93 deletions(-) diff --git a/src/DirectiveProcessing/insert_directive.cpp b/src/DirectiveProcessing/insert_directive.cpp index 68c20ac..8569226 100644 --- a/src/DirectiveProcessing/insert_directive.cpp +++ b/src/DirectiveProcessing/insert_directive.cpp @@ -442,8 +442,11 @@ static void replaceComment(string &dir, const char *firstChar) } } -void removeDvmDirectives(SgFile *file, const bool toComment) +void removeDvmSpfDirectives(SgFile* file, bool removeDvm, bool removeSpf, bool toComment) { + if (!removeDvm && !removeSpf) + printInternalError(convertFileName(__FILE__).c_str(), __LINE__); + vector toDel; vector toTotalDel; const string currFile = file->filename(); @@ -467,7 +470,7 @@ void removeDvmDirectives(SgFile *file, const bool toComment) break; const int var = st->variant(); - if (isDVM_stat(st)) + if (isDVM_stat(st) && removeDvm || isSPF_stat(st) && removeSpf) if (st->fileName() == currFile) toDel.push_back(st); @@ -477,7 +480,7 @@ void removeDvmDirectives(SgFile *file, const bool toComment) } } - if (toComment) + if (toComment && removeDvm) { for (auto &elem : toDel) { diff --git a/src/DirectiveProcessing/insert_directive.h b/src/DirectiveProcessing/insert_directive.h index e222067..3d65482 100644 --- a/src/DirectiveProcessing/insert_directive.h +++ b/src/DirectiveProcessing/insert_directive.h @@ -38,7 +38,7 @@ void insertShadowSpecToFile(SgFile* file, const char* fin_name, const std::set, std::pair>& declaredArrays); void insertDistributionToFile(const char* origFile, const char* outFile, const std::map>& commentsToInclude); -void removeDvmDirectives(SgFile* file, const bool toComment); +void removeDvmSpfDirectives(SgFile* file, bool removeDvm, bool removeSpf, bool toComment); void insertDistributeDirsToParallelRegions(const std::vector* currLines, const std::vector& reDistrRulesBefore, diff --git a/src/Sapfor.cpp b/src/Sapfor.cpp index 2190d3a..fb020c4 100644 --- a/src/Sapfor.cpp +++ b/src/Sapfor.cpp @@ -344,11 +344,13 @@ static string unparseProjectIfNeed(SgFile* file, const int curr_regime, const bo // copy includes that have not changed if (folderName != NULL) { - int removeDvmDirs = 0; + int removeSpfDirs = 0; if (curr_regime == REMOVE_DVM_DIRS) - removeDvmDirs = 1; + removeSpfDirs = 1; else if (curr_regime == REMOVE_DVM_DIRS_TO_COMMENTS) - removeDvmDirs = 2; + removeSpfDirs = 2; + else if (curr_regime == REMOVE_SPF_DIRS) + removeSpfDirs = 3; set allIncludeFilesFiltr; @@ -363,7 +365,7 @@ static string unparseProjectIfNeed(SgFile* file, const int curr_regime, const bo } allIncludeFiles = allIncludeFilesFiltr; - copyIncludes(allIncludeFiles, commentsToInclude, newCopyDeclToIncl, folderName, keepSpfDirs, out_free_form == 1, (curr_regime == RENAME_INLCUDES), removeDvmDirs); + copyIncludes(allIncludeFiles, commentsToInclude, newCopyDeclToIncl, folderName, keepSpfDirs, out_free_form == 1, (curr_regime == RENAME_INLCUDES), removeSpfDirs); } } @@ -742,8 +744,12 @@ static bool runAnalysis(SgProject &project, const int curr_regime, const bool ne } else if (curr_regime == LOOP_DATA_DEPENDENCIES) doDependenceAnalysisOnTheFullFile(file, 1, 1, 1); - else if (curr_regime == REMOVE_DVM_DIRS || curr_regime == REMOVE_DVM_DIRS_TO_COMMENTS) - removeDvmDirectives(file, curr_regime == REMOVE_DVM_DIRS_TO_COMMENTS); + else if (curr_regime == REMOVE_DVM_DIRS || curr_regime == REMOVE_DVM_DIRS_TO_COMMENTS || curr_regime == REMOVE_SPF_DIRS) { + bool removeDvm = (curr_regime == REMOVE_DVM_DIRS || curr_regime == REMOVE_DVM_DIRS); + bool removeSpf = (curr_regime == REMOVE_SPF_DIRS); + bool toComment = (curr_regime == REMOVE_DVM_DIRS_TO_COMMENTS); + removeDvmSpfDirectives(file, removeDvm, removeSpf, toComment); + } else if (curr_regime == REMOVE_DVM_INTERVALS) { vector toDel; @@ -2314,6 +2320,7 @@ void runPass(const int curr_regime, const char *proj_name, const char *folderNam case INSERT_INCLUDES: case REMOVE_DVM_DIRS: case REMOVE_DVM_DIRS_TO_COMMENTS: + case REMOVE_SPF_DIRS: case PRIVATE_ARRAYS_EXPANSION: case PRIVATE_ARRAYS_SHRINKING: case UNROLL_LOOPS: diff --git a/src/Sapfor.h b/src/Sapfor.h index 61da779..bc77cd9 100644 --- a/src/Sapfor.h +++ b/src/Sapfor.h @@ -84,6 +84,7 @@ enum passes { INSERT_INCLUDES, REMOVE_DVM_DIRS, REMOVE_DVM_DIRS_TO_COMMENTS, + REMOVE_SPF_DIRS, REMOVE_DVM_INTERVALS, VERIFY_DVM_DIRS, @@ -264,6 +265,8 @@ static void setPassValues() passNames[INSERT_INCLUDES] = "INSERT_INCLUDES"; passNames[REMOVE_DVM_DIRS] = "REMOVE_DVM_DIRS"; passNames[VERIFY_DVM_DIRS] = "VERIFY_DVM_DIRS"; + passNames[REMOVE_DVM_DIRS_TO_COMMENTS] = "REMOVE_DVM_DIRS_TO_COMMENTS"; + passNames[REMOVE_SPF_DIRS] = "REMOVE_SPF_DIRS"; passNames[REMOVE_DIST_ARRAYS_FROM_IO] = "REMOVE_DIST_ARRAYS_FROM_IO"; passNames[SUBST_EXPR] = "SUBST_EXPR"; passNames[SUBST_EXPR_RD] = "SUBST_EXPR_RD"; @@ -296,8 +299,7 @@ static void setPassValues() passNames[PREDICT_SCHEME] = "PREDICT_SCHEME"; passNames[GET_STATS_FOR_PREDICTOR] = "GET_STATS_FOR_PREDICTOR"; passNames[DEF_USE_STAGE1] = "DEF_USE_STAGE1"; - passNames[DEF_USE_STAGE2] = "DEF_USE_STAGE2"; - passNames[REMOVE_DVM_DIRS_TO_COMMENTS] = "REMOVE_DVM_DIRS_TO_COMMENTS"; + passNames[DEF_USE_STAGE2] = "DEF_USE_STAGE2"; passNames[REVERT_SPF_DIRS] = "REVERT_SPF_DIRS"; passNames[CLEAR_SPF_DIRS] = "CLEAR_SPF_DIRS"; passNames[INSERT_REGIONS] = "INSERT_REGIONS"; diff --git a/src/Utils/PassManager.h b/src/Utils/PassManager.h index 171fcac..1139d3d 100644 --- a/src/Utils/PassManager.h +++ b/src/Utils/PassManager.h @@ -273,11 +273,11 @@ void InitPassesDependencies(map> &passDepsIn, set Pass(REVERT_SUBST_EXPR_RD) <= list({ PURE_SAVE_TO_PARAMS, PURE_MODULE_TO_PARAMS, PURE_COMMON_TO_PARAMS, PURE_INTENT_INSERT }); - list({ CORRECT_VAR_DECL, REVERT_SUBST_EXPR_RD, VERIFY_INCLUDES }) <= list({ CONVERT_TO_ENDDO, CORRECT_CODE_STYLE, REMOVE_DVM_DIRS, REMOVE_DVM_DIRS_TO_COMMENTS, REMOVE_DVM_INTERVALS }); + list({ CORRECT_VAR_DECL, REVERT_SUBST_EXPR_RD, VERIFY_INCLUDES }) <= list({ CONVERT_TO_ENDDO, CORRECT_CODE_STYLE, REMOVE_DVM_DIRS, REMOVE_DVM_DIRS_TO_COMMENTS, REMOVE_SPF_DIRS, REMOVE_DVM_INTERVALS }); list({ CALL_GRAPH2, CONVERT_LOOP_TO_ASSIGN, REVERT_SUBST_EXPR_RD, RESTORE_LOOP_FROM_ASSIGN }) <= Pass(INLINE_PROCEDURES); - list({ CONVERT_LOOP_TO_ASSIGN, CORRECT_FORMAT_PLACE }) <= list({ CONVERT_TO_ENDDO, CORRECT_CODE_STYLE, INSERT_INCLUDES, REMOVE_DVM_DIRS, REMOVE_DVM_DIRS_TO_COMMENTS, REMOVE_DVM_INTERVALS }); + list({ CONVERT_LOOP_TO_ASSIGN, CORRECT_FORMAT_PLACE }) <= list({ CONVERT_TO_ENDDO, CORRECT_CODE_STYLE, INSERT_INCLUDES, REMOVE_DVM_DIRS, REMOVE_DVM_DIRS_TO_COMMENTS, REMOVE_SPF_DIRS, REMOVE_DVM_INTERVALS }); list({ CORRECT_VAR_DECL, REVERT_SUBST_EXPR_RD }) <= list({ INSERT_INCLUDES, UNPARSE_FILE, SET_TO_ALL_DECL_INIT_ZERO }); diff --git a/src/Utils/utils.cpp b/src/Utils/utils.cpp index a5f9cdc..a7d2faf 100644 --- a/src/Utils/utils.cpp +++ b/src/Utils/utils.cpp @@ -556,7 +556,7 @@ string renameInclude(const string& inc) void copyIncludes(const set &allIncludeFiles, const map>> &commentsToInclude, const map>>& newCopyDeclToIncl, const char *folderName, bool keepSpfDirs, bool isFreeStyle, bool isRename, - int removeDvmDirs) + int removeDirs) { for (auto &include : allIncludeFiles) { @@ -601,18 +601,24 @@ void copyIncludes(const set &allIncludeFiles, const map &allIncludeFiles, const std::map>> &commentsToInclude, const std::map>>& newCopyDeclToIncl, const char *folderName, bool keepSpfDirs, bool isFreeStyle, bool isRename, int removeDvmDirs = 0); +void copyIncludes(const std::set &allIncludeFiles, const std::map>> &commentsToInclude, const std::map>>& newCopyDeclToIncl, const char *folderName, bool keepSpfDirs, bool isFreeStyle, bool isRename, int removeDirs = 0); std::string splitDirective(const std::string &in); std::string splitDirectiveFull(const std::string &in_); diff --git a/src/Utils/version.h b/src/Utils/version.h index 884865d..cbe83a5 100644 --- a/src/Utils/version.h +++ b/src/Utils/version.h @@ -1,3 +1,3 @@ #pragma once -#define VERSION_SPF "2397" +#define VERSION_SPF "2398" diff --git a/src/VisualizerCalls/get_information.cpp b/src/VisualizerCalls/get_information.cpp index 8019846..bba79c4 100644 --- a/src/VisualizerCalls/get_information.cpp +++ b/src/VisualizerCalls/get_information.cpp @@ -1820,6 +1820,14 @@ int SPF_RemoveDvmDirectives(void*& context, int winHandler, short *options, shor return simpleTransformPass(REMOVE_DVM_DIRS, options, projName, folderName, output, outputSize, outputMessage, outputMessageSize); } +int SPF_RemoveSpfDirectives(void*& context, int winHandler, short* options, short* projName, short* folderName, short*& output, + int*& outputSize, short*& outputMessage, int*& outputMessageSize) +{ + MessageManager::clearCache(); + MessageManager::setWinHandler(winHandler); + return simpleTransformPass(REMOVE_SPF_DIRS, options, projName, folderName, output, outputSize, outputMessage, outputMessageSize); +} + int SPF_RemoveDvmDirectivesToComments(void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize) { @@ -2591,6 +2599,8 @@ const wstring Sapfor_RunTransformation(const char* transformName_c, const char* retCode = SPF_RemoveOmpDirectives(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); else if (whichRun == "SPF_RemoveDvmDirectives") retCode = SPF_RemoveDvmDirectives(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); + else if (whichRun == "SPF_RemoveSpfDirectives") + retCode = SPF_RemoveSpfDirectives(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); else if (whichRun == "SPF_RemoveDvmDirectivesToComments") retCode = SPF_RemoveDvmDirectivesToComments(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); else if (whichRun == "SPF_RemoveComments") @@ -2603,21 +2613,6 @@ const wstring Sapfor_RunTransformation(const char* transformName_c, const char* retCode = SPF_RemoveDistArraysFromIO(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); else if (whichRun == "SPF_LoopEndDoConverterPass") retCode = SPF_LoopEndDoConverterPass(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); - else if (whichRun == "SPF_CreateParallelVariant") - { - vector splited; - string orig(addOpt_c); - splitString(orig, '|', splited); - - int64_t* variants = NULL; - int varLen = -1; - - fillInfo(splited, variants, varLen); - retCode = SPF_CreateParallelVariant(context, winHandler, optSh, projSh, fold, variants, &varLen, output, outputSize, outputMessage, outputMessageSize, predStats); - - if (retCode > 0) - delete[]variants; - } else if (whichRun == "SPF_LoopFission") retCode = SPF_LoopFission(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); else if (whichRun == "SPF_LoopUnion") @@ -2664,6 +2659,21 @@ const wstring Sapfor_RunTransformation(const char* transformName_c, const char* retCode = SPF_InsertImplicitNone(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); else if (whichRun == "SPF_RenameIncludes") retCode = SPF_RenameIncludes(context, winHandler, optSh, projSh, fold, output, outputSize, outputMessage, outputMessageSize); + else if (whichRun == "SPF_CreateParallelVariant") + { + vector splited; + string orig(addOpt_c); + splitString(orig, '|', splited); + + int64_t* variants = NULL; + int varLen = -1; + + fillInfo(splited, variants, varLen); + retCode = SPF_CreateParallelVariant(context, winHandler, optSh, projSh, fold, variants, &varLen, output, outputSize, outputMessage, outputMessageSize, predStats); + + if (retCode > 0) + delete[]variants; + } else { if (showDebug) diff --git a/src/VisualizerCalls/get_information.h b/src/VisualizerCalls/get_information.h index 557fd91..da9da0c 100644 --- a/src/VisualizerCalls/get_information.h +++ b/src/VisualizerCalls/get_information.h @@ -1,53 +1,5 @@ #pragma once -#if _WIN32 -// ANALISYS -extern "C" { __declspec(dllexport) int SPF_GetGraphLoops(void*& context, int winHandler, short *options, short *projName, short *&result, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_GetGraphFunctions(void*& context, int winHandler, short *options, short *projName, short *&result, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_GetGraphVizOfFunctions(void*& context, short *options, short *projName, short *&result, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_GetArrayDistribution(void*& context, int winHandler, short *options, short *projName, short *&result, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize, int onlyAnalysis); } -extern "C" { __declspec(dllexport) int SPF_SetFunctionsToInclude(void*& context, int winHandler, short *options, short *projName, short *&result, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_GetAllDeclaratedArrays(void*& context, int winHandler, short *options, short *projName, short *&result, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_GetFileLineInfo(void*& context, int winHandler, short *options, short *projName, short *&result, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_GetIncludeDependencies(void*& context, int winHandler, short *options, short *projName, short *&resultt, short*& output, int*& outputSize, short*& outputMessage, int*& outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_GetGCovInfo(void*& context, int winHandler, short *options, short *projName, short *&result, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_ParseFiles(void*& context, int winHandler, short *options, short* projName, short*& output, int*& outputSize, short*& outputMessage, int*& outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_StatisticAnalyzer(void*& context, int winHandler, short* options, short* pppaOptions, short*& output, int*& outputSize, short*& outputMessage, int*& outputMessageSize); } - -extern "C" { __declspec(dllexport) int SPF_GetPassesState(void*& context, int *&passInfo); } // deprecated -extern "C" { __declspec(dllexport) int SPF_GetPassesStateStr(void*& context, short *&passInfo); } -extern "C" { __declspec(dllexport) int SPF_GetVersionAndBuildDate(void*& context, short *&result); } -extern "C" { __declspec(dllexport) int SPF_GetIntrinsics(void*& context, short *&result); } -extern "C" { __declspec(dllexport) void SPF_deleteAllAllocatedData(void*& context); } - -// CODE TRANSFORMATION -extern "C" { __declspec(dllexport) int SPF_CorrectCodeStylePass (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_RemoveDvmDirectives (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_RemoveDvmDirectivesToComments (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_InsertIncludesPass (void*& context, int winHandler, short *options, short *projName, short *folderName, char *filesToInclude, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_ResolveParallelRegionConflicts(void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_LoopEndDoConverterPass (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_CreateParallelVariant (void*& context, int winHandler, short *options, short *projName, short *folderName, int64_t *variants, int *varLen, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize, short *&predictorStats); } -extern "C" { __declspec(dllexport) int SPF_LoopFission (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_LoopUnion (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_PrivateExpansion (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_PrivateShrinking (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_PrivateRemoving (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_CreateIntervalsTree (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_RemoveDvmIntervals (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_DuplicateFunctionChains (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int *&outputSize, short *&outputMessage, int *&outputMessageSize); } -extern "C" { __declspec(dllexport) int SPF_InlineProcedures (void*& context, int winHandler, short *options, short *projName, short *folderName, short *names, short *&output, int*& outputSize, short*& outputMessage, int*& outputMessageSize, int type); } - int SPF_CreateCheckpoints (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int*& outputSize, short*& outputMessage, int*& outputMessageSize); - int SPF_InitDeclsWithZero (void*& context, int winHandler, short *options, short *projName, short *folderName, short *&output, int*& outputSize, short*& outputMessage, int*& outputMessageSize); -//CODE MODIFICATION -extern "C" { __declspec(dllexport) int SPF_ModifyArrayDistribution (void*& context, int winHandler, short *options, short* projName, short*& output, int*& outputSize, short*& outputMessage, int*& outputMessageSize, int regId, int64_t* toModify); } -extern "C" { __declspec(dllexport) int SPF_InlineProcedure (void*& context, int winHandler, short* options, short* projName, short* folderName, short* name, short* file, int line, short*& output, int*& outputSize, short*& outputMessage, int*& outputMessageSize, int& size, int*& sizes, short*& newFilesNames, short*& newFiles); } -extern "C" { __declspec(dllexport) int SPF_LoopUnionCurrent (void*& context, int winHandler, short* options, short* projName, short* folderName, short* file, int line, short*& output, int*& outputSize, short*& outputMessage, int*& outputMessageSize, int& size, int*& sizes, short*& newFilesNames, short*& newFiles); } -extern "C" { __declspec(dllexport) int SPF_ChangeSpfIntervals (void*& context, int winHandler, short* options, short* projName, short* folderName, short*& output, int*& outputSize, short*& outputMessage, int*& outputMessageSize, short* fileNameToMod, int* toModifyLines, int& size, int*& sizes, short*& newFilesNames, short*& newFiles); } -extern "C" { __declspec(dllexport) int SPF_SetDistributionFlagToArray (void*& context, char* key, int flag); } -extern "C" { __declspec(dllexport) int SPF_SetDistributionFlagToArrays(void*& context, const char* keys, const char* flags); } -#endif - void createNeededException(); void RunSapforAsClient(int); @@ -55,13 +7,3 @@ const std::wstring Sapfor_RunAnalysis(const char* name, const char* options_c, c const std::wstring Sapfor_RunTransformation(const char* name, const char* options_c, const char* projName_c, const char* folder_c, const char* addOpt_c, int winHandler); const std::wstring Sapfor_RunModification(const char* name, const char* options_c, const char* projName_c, const char* folder_c, const char* addOpt1_c, const char* addOpt2_c, int winHandler); void sendErrorCode(const std::wstring& message); - -#ifdef JAVA -#include -extern "C" -{ - JNIEXPORT jcharArray JNICALL Java_components_Sapfor_SPF_1RunAnalysis (JNIEnv*, jobject, jstring, jint, jstring, jstring); - JNIEXPORT jcharArray JNICALL Java_components_Sapfor_SPF_1RunTransformation(JNIEnv*, jobject, jstring, jint, jstring, jstring, jstring, jstring); - JNIEXPORT jcharArray JNICALL Java_components_Sapfor_SPF_1RunModification (JNIEnv*, jobject, jstring, jint, jstring, jstring, jstring, jstring, jstring); -} -#endif