Changeset 1824
- Timestamp:
- Jul 14, 2010, 8:04:01 PM (14 years ago)
- Location:
- branches/blt4
- Files:
-
- 10 added
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/blt4/examples/app-fermi/Makefile.in
r1744 r1824 23 23 MEX = @MEX@ 24 24 MKOCTFILE = @MKOCTFILE@ 25 JAVA = @JAVA@25 JAVA_HOME = @JAVA_HOME@ 26 26 27 27 .PHONY: tcl cee fortran octave matlab perl python ruby java 2.0 wrapper … … 46 46 LANGS += ruby 47 47 endif 48 ifneq ($(JAVA ),)48 ifneq ($(JAVA_HOME),) 49 49 LANGS += java 50 50 endif -
branches/blt4/examples/zoo/binary/tardir.tcl
r702 r1824 21 21 close $fid 22 22 23 catch {exec tar tvzf $file} dir 23 set status [catch {exec tar tvzf $file} result] 24 24 file delete -force $file 25 25 26 if {$status != 0} { 27 puts stderr "ERROR: $result" 28 exit 1 29 } 30 26 31 $driver put output.string(dir).about.label "Contents" 27 $driver put output.string(dir).current $ dir32 $driver put output.string(dir).current $result 28 33 29 34 $driver put output.string(tarball).about.label "Original Tar File" -
branches/blt4/examples/zoo/binary/tool.xml
r684 r1824 19 19 <description>Upload a gzipped tar file (Unix-style archive file).</description> 20 20 </about> 21 <size> 60x10</size>21 <size>binary</size> 22 22 <default></default> 23 23 </string> -
branches/blt4/examples/zoo/image/tool.xml
r1587 r1824 23 23 </loader> 24 24 <image> 25 <about><diffs>ignore</diffs></about> 25 <about> 26 <label>Image</label> 27 <description>Input image that gets rotated.</description> 28 <diffs>ignore</diffs> 29 </about> 30 <convert>bmp</convert> 26 31 </image> 27 32 <number id="angle"> -
branches/blt4/lang/Makefile.in
r1744 r1824 21 21 MEX = @MEX@ 22 22 MKOCTFILE = @MKOCTFILE@ 23 JAVA = @JAVA@23 JAVA_HOME = @JAVA_HOME@ 24 24 25 25 # Rappture requires it. We always build a Tcl language API. … … 41 41 LANGS += octave 42 42 endif 43 ifneq ($(JAVA ),)43 ifneq ($(JAVA_HOME),) 44 44 LANGS += java 45 45 endif -
branches/blt4/lang/java/Library.java
r1744 r1824 27 27 } 28 28 29 public Library(){ 30 libPtr = jRpLibrary(null); 31 } 32 29 33 // Pseudo-Destructor. Called when the object is garbage collected.---------- 30 34 protected void finalize() throws Throwable { … … 37 41 38 42 // Public Methods------------------------------------------------------------ 43 44 public byte[] getData(String path){ 45 return jRpGetData(libPtr, path); 46 } 47 39 48 public double getDouble(String path){ 40 49 return jRpGetDouble(libPtr, path); … … 43 52 public String getString(String path){ 44 53 return jRpGetString(libPtr, path); 54 } 55 56 public int getInt(String path){ 57 return jRpGetInt(libPtr, path); 45 58 } 46 59 … … 58 71 } 59 72 73 public void putData(String path, byte[] b, boolean append){ 74 jRpPutData(libPtr, path, b, b.length, append); 75 } 76 77 public void putData(String path, byte[] b){ 78 jRpPutData(libPtr, path, b, b.length, false); 79 } 80 81 public void putFile(String path, String fileName, 82 boolean compress, boolean append){ 83 jRpPutFile(libPtr, path, fileName, compress, append); 84 } 85 86 public void putFile(String path, String fileName, boolean compress){ 87 jRpPutFile(libPtr, path, fileName, compress, false); 88 } 89 90 public void putFile(String path, String fileName){ 91 jRpPutFile(libPtr, path, fileName, true, false); 92 } 93 60 94 public void result(int exitStatus){ 61 95 jRpResult(libPtr, exitStatus); … … 71 105 private native void jRpDeleteLibrary(long libPtr); 72 106 107 private native byte[] jRpGetData(long libPtr, String path); 73 108 private native double jRpGetDouble(long libPtr, String path); 109 private native int jRpGetInt(long libPtr, String path); 74 110 private native String jRpGetString(long libPtr, String path); 75 111 76 112 private native void jRpPut(long libPtr, String path, 77 113 String value, boolean append); 114 private native void jRpPutData(long libPtr, String path, 115 byte[] b, int nbytes, boolean append); 116 private native void jRpPutFile(long libPtr, String path, String fileName, 117 boolean compress, boolean append); 78 118 79 119 private native void jRpResult(long libPtr, int exitStatus); -
branches/blt4/lang/java/Units.java
r1744 r1824 27 27 } 28 28 29 public static String convert(String fromVal, String to){ 30 return jRpUnitsConvert(fromVal, to, true); 31 } 32 29 33 private static native String jRpUnitsConvert(String fromVal, String to, boolean units); 30 34 } -
branches/blt4/lang/java/jRpLibrary.cc
r1744 r1824 1 /* 2 * ====================================================================== 1 /* * ====================================================================== 3 2 * AUTHOR: Ben Rafferty, Purdue University 4 3 * Copyright (c) 2010 Purdue Research Foundation … … 18 17 19 18 /* 20 * Constructor. Returns the address of the newly created RpLibrary object to19 * Constructor. Creates a C++ RpLibrary object and returns its address to 21 20 * java as a long int. 22 21 */ 23 22 JNIEXPORT jlong JNICALL Java_rappture_Library_jRpLibrary 24 23 (JNIEnv *env, jobject obj, jstring javaPath){ 25 const char* nativePath = env->GetStringUTFChars(javaPath, 0); 26 RpLibrary* lib = new RpLibrary(nativePath); 27 env->ReleaseStringUTFChars(javaPath, nativePath); 24 RpLibrary* lib = NULL; 25 const char* nativePath; 26 jclass ex; 27 28 if (javaPath == NULL){ 29 lib = new RpLibrary(); 30 } 31 else{ 32 nativePath = env->GetStringUTFChars(javaPath, 0); 33 lib = new RpLibrary(nativePath); 34 env->ReleaseStringUTFChars(javaPath, nativePath); 35 } 36 37 if (lib == NULL){ 38 ex = env->FindClass("java/lang/NullPointerException"); 39 if (ex){ 40 env->ThrowNew(ex, "Could not create rappture library."); 41 } 42 env->DeleteLocalRef(ex); 43 } 44 28 45 return (jlong)lib; 29 46 } 30 47 31 48 /* 32 * Pseudo-destructor. This function is called by the java Library class's 33 * finalizer. 49 * Destructor. This function is called by the java Library class's 50 * finalizer. Deletes the C++ RpLibrary object when the java Library 51 * is garbage collected. 34 52 */ 35 53 JNIEXPORT void JNICALL Java_rappture_Library_jRpDeleteLibrary … … 37 55 delete (RpLibrary*) libPtr; 38 56 return; 57 } 58 59 // getData 60 JNIEXPORT jbyteArray JNICALL Java_rappture_Library_jRpGetData 61 (JNIEnv *env, jobject obj, jlong libPtr, jstring javaPath){ 62 const char* nativePath = env->GetStringUTFChars(javaPath, 0); 63 Rappture::Buffer buf = ((RpLibrary*)libPtr)->getData(nativePath); 64 size_t size = buf.size(); 65 _jbyteArray* jbuf = env->NewByteArray(size); 66 env->SetByteArrayRegion(jbuf, 0, size, (const jbyte*)buf.bytes()); 67 env->ReleaseStringUTFChars(javaPath, nativePath); 68 return jbuf; 39 69 } 40 70 … … 46 76 env->ReleaseStringUTFChars(javaPath, nativePath); 47 77 return (jdouble)retDVal; 78 } 79 80 // getInt 81 JNIEXPORT jint JNICALL Java_rappture_Library_jRpGetInt 82 (JNIEnv *env, jobject obj, jlong libPtr, jstring javaPath){ 83 const char* nativePath = env->GetStringUTFChars(javaPath, 0); 84 int retIVal = ((RpLibrary*)libPtr)->getInt(nativePath); 85 env->ReleaseStringUTFChars(javaPath, nativePath); 86 return (jint)retIVal; 48 87 } 49 88 … … 76 115 } 77 116 117 // putData 118 JNIEXPORT void JNICALL Java_rappture_Library_jRpPutData 119 (JNIEnv *env, jobject obj, jlong libPtr, jstring javaPath, 120 jbyteArray jb, jint nbytes, jboolean append){ 121 const char* nativePath = env->GetStringUTFChars(javaPath, 0); 122 jbyte* b = env->GetByteArrayElements(jb, NULL); 123 ((RpLibrary*)libPtr)->putData(nativePath, (const char*)b, 124 nbytes, (int)append); 125 env->ReleaseByteArrayElements(jb, b, 0); 126 env->ReleaseStringUTFChars(javaPath, nativePath); 127 } 128 129 // putFile 130 JNIEXPORT void JNICALL Java_rappture_Library_jRpPutFile 131 (JNIEnv *env, jobject obj, jlong libPtr, jstring javaPath, 132 jstring javaFileName, jboolean compress, jboolean append){ 133 const char* nativePath = env->GetStringUTFChars(javaPath, 0); 134 const char* nativeFileName = env->GetStringUTFChars(javaFileName, 0); 135 ((RpLibrary*)libPtr)->putFile(nativePath, nativeFileName, 136 (int)compress, (int)append); 137 env->ReleaseStringUTFChars(javaPath, nativePath); 138 env->ReleaseStringUTFChars(javaFileName, nativeFileName); 139 } 78 140 79 141 // result … … 83 145 } 84 146 85 -
branches/blt4/lang/java/jRpUnits.cc
r1744 r1824 22 22 const char* nativeFromVal = env->GetStringUTFChars(javaFromVal, 0); 23 23 const char* nativeTo = env->GetStringUTFChars(javaTo, 0); 24 std::string retStr = RpUnits::convert(nativeFromVal, nativeTo, (int)units); 24 int err; 25 jclass ex; 26 std::string errorMsg; 27 28 // perform conversion 29 std::string retStr = RpUnits::convert(nativeFromVal, nativeTo, 30 (int)units, &err); 31 32 // raise a runtime exception on error 33 if (err){ 34 ex = env->FindClass("java/lang/RuntimeException"); 35 if (ex){ 36 errorMsg = "Connot convert "; 37 errorMsg += nativeFromVal; 38 errorMsg += " to "; 39 errorMsg += nativeTo; 40 env->ThrowNew(ex, errorMsg.c_str()); 41 } 42 env->DeleteLocalRef(ex); 43 } 44 25 45 env->ReleaseStringUTFChars(javaFromVal, nativeFromVal); 26 46 env->ReleaseStringUTFChars(javaTo, nativeTo); 47 48 // create new java string and return 27 49 return (env->NewStringUTF(retStr.c_str())); 28 50 } -
branches/blt4/lang/java/jRpUtils.cc
r1744 r1824 20 20 JNIEXPORT void JNICALL Java_rappture_Utils_jRpUtilsProgress 21 21 (JNIEnv *env, jclass cls, jint percent, jstring javaText){ 22 const char* nativeText = env->GetStringUTFChars(javaText, 0); 23 Rappture::Utils::progress(percent, nativeText); 22 const char* nativeText = env->GetStringUTFChars(javaText, 0); 23 int err = Rappture::Utils::progress(percent, nativeText); 24 jclass ex; 25 if (err){ 26 ex = env->FindClass("java/lang/RuntimeException"); 27 if (ex){ 28 env->ThrowNew(ex, "rappture.Utils.progress failed."); 29 } 30 env->DeleteLocalRef(ex); 31 } 24 32 env->ReleaseStringUTFChars(javaText, nativeText); 25 33 return; -
branches/blt4/lang/matlab/RpMatlabInterface.cc
r737 r1824 55 55 56 56 /* Input must be a row vector. */ 57 if ( (mxGetM(prhs)) != 1) 57 if ( (mxGetM(prhs) == 0) && (mxGetN(prhs) == 0)) { 58 // do nothin, accept empty strings 59 } else if ( (mxGetM(prhs)) != 1) { 58 60 mexErrMsgTxt("Input must be a row vector."); 61 } 59 62 60 63 /* Get the length of the input string. */ -
branches/blt4/lang/perl/Rappture.xs
r1095 r1824 38 38 RETVAL = 0; 39 39 40 const char*40 SV * 41 41 RpLibrary::get( path ) 42 42 const char *path … … 44 44 string result; 45 45 result = THIS->get(path); 46 RETVAL = result.c_str();46 RETVAL = newSVpvn(result.data(),result.length()); 47 47 OUTPUT: 48 48 RETVAL -
branches/blt4/lang/python/Rappture/result.py
r787 r1824 20 20 """ 21 21 22 lib.put("tool.version.rappture.language", "python"); 23 runfile = 'run%d.xml' % time.time() 24 fp = open(runfile,'w') 25 fp.write(lib.xml()) 26 fp.close() 27 28 # pass the name of the run file back to Rappture 29 print '=RAPPTURE-RUN=>%s' % runfile 22 lib.put("tool.version.rappture.language", "python") 23 lib.result() -
branches/blt4/lang/tcl/tests/units.test
r1427 r1824 659 659 } {0 538.47R} 660 660 661 test convert_units-5.4.6.12 {Rappture::Units::convert, K->mK} { 662 list [catch {Rappture::Units::convert 299.15K -to mK} msg] $msg 663 } {0 299150mK} 664 665 test convert_units-5.4.6.13 {Rappture::Units::convert, K->mk} { 666 list [catch {Rappture::Units::convert 299.15K -to mk} msg] $msg 667 } {0 299150mK} 668 669 test convert_units-5.4.6.14 {Rappture::Units::convert, C->mC} { 670 list [catch {Rappture::Units::convert 100C -to mC} msg] $msg 671 } {0 100000mC} 672 673 test convert_units-5.4.6.15 {Rappture::Units::convert, C->mc} { 674 list [catch {Rappture::Units::convert 100C -to mc} msg] $msg 675 } {0 100000mC} 676 677 661 678 #-------------------------------------------------------------------- 662 679 # Energy Conversions … … 1031 1048 } {0 sK 0 time*temperature} 1032 1049 1050 #-------------------------------------------------------------------- 1051 # Allow isspace whitespace in Rappture::Units 1052 #-------------------------------------------------------------------- 1053 1054 test space-7.0.0.1 {check for spaces before value unit string} { 1055 list [catch {Rappture::Units::Search::for " 300K"} msg] $msg 1056 } {0 K} 1057 1058 test space-7.0.0.2 {check for spaces after value unit string} { 1059 list [catch {Rappture::Units::Search::for "300K "} msg] $msg 1060 } {0 K} 1061 1062 test space-7.0.0.3 {check for spaces before and after value unit string} { 1063 list [catch {Rappture::Units::Search::for " 300K "} msg] $msg 1064 } {0 K} 1065 1066 test space-7.0.0.4 {check for spaces between value and unit string} { 1067 list [catch {Rappture::Units::Search::for " 300 K "} msg] $msg 1068 } {0 K} 1069 1070 test space-7.0.0.5 {check for spaces between value and single unit string} { 1071 list [catch {Rappture::Units::Search::for "300 K"} msg] $msg 1072 } {0 K} 1073 1074 test space-7.0.0.6 {check for spaces between value and multiple unit string} { 1075 list [catch {Rappture::Units::Search::for "300 Kft"} msg] $msg 1076 } {0 Kft} 1077 1078 test space-7.0.0.7 {check for spaces around and between value and multiple unit string} { 1079 list [catch {Rappture::Units::Search::for " 300 Kft "} msg] $msg 1080 } {0 Kft} 1081 1082 test space-7.0.0.8 {check for spaces between multiple unit string} { 1083 list [catch {Rappture::Units::Search::for "300 K ft"} msg] $msg 1084 } {0 Kft} 1085 1086 test space-7.0.0.9 {check for spaces around and between multiple unit string} { 1087 list [catch {Rappture::Units::Search::for " 300 K ft "} msg] $msg 1088 } {0 Kft} 1089 1090 test space-7.0.0.10 {check for spaces between multiple unit string with division} { 1091 list [catch {Rappture::Units::Search::for "300 K / ft"} msg] $msg 1092 } {0 K/ft} 1093 1094 test space-7.0.0.11 {check for spaces between multiple unit string with multiplication} { 1095 list [catch {Rappture::Units::Search::for "300 K * ft"} msg] $msg 1096 } {0 Kft} 1097 1098 test space-7.0.1.1 {check for tabs before value unit string} { 1099 list [catch {Rappture::Units::Search::for "\t300K"} msg] $msg 1100 } {0 K} 1101 1102 test space-7.0.1.2 {check for tabs after value unit string} { 1103 list [catch {Rappture::Units::Search::for "300K\t"} msg] $msg 1104 } {0 K} 1105 1106 test space-7.0.1.3 {check for tabs before and after value unit string} { 1107 list [catch {Rappture::Units::Search::for "\t300K\t"} msg] $msg 1108 } {0 K} 1109 1110 test space-7.0.1.4 {check for tabs between value and unit string} { 1111 list [catch {Rappture::Units::Search::for "\t300\tK\t"} msg] $msg 1112 } {0 K} 1113 1114 test space-7.0.1.5 {check for tabs between value and single unit string} { 1115 list [catch {Rappture::Units::Search::for "300\tK"} msg] $msg 1116 } {0 K} 1117 1118 test space-7.0.1.6 {check for tabs between value and multiple unit string} { 1119 list [catch {Rappture::Units::Search::for "300\tKft"} msg] $msg 1120 } {0 Kft} 1121 1122 test space-7.0.1.7 {check for tabs around and between value and multiple unit string} { 1123 list [catch {Rappture::Units::Search::for "\t300\tKft\t"} msg] $msg 1124 } {0 Kft} 1125 1126 test space-7.0.1.8 {check for tabs between multiple unit string} { 1127 list [catch {Rappture::Units::Search::for "300\tK\tft"} msg] $msg 1128 } {0 Kft} 1129 1130 test space-7.0.1.9 {check for tabs around and between multiple unit string} { 1131 list [catch {Rappture::Units::Search::for "\t300\tK\tft\t"} msg] $msg 1132 } {0 Kft} 1133 1134 test space-7.0.1.10 {check for tabs between multiple unit string with division} { 1135 list [catch {Rappture::Units::Search::for "300\tK\t/\tft"} msg] $msg 1136 } {0 K/ft} 1137 1138 test space-7.0.1.11 {check for tabs between multiple unit string with multiplication} { 1139 list [catch {Rappture::Units::Search::for "300\tK\t*\tft"} msg] $msg 1140 } {0 Kft} 1141 1142 test space-7.0.2.1 {check for newlines before value unit string} { 1143 list [catch {Rappture::Units::Search::for "\n300K"} msg] $msg 1144 } {0 K} 1145 1146 test space-7.0.2.2 {check for newlines after value unit string} { 1147 list [catch {Rappture::Units::Search::for "300K\n"} msg] $msg 1148 } {0 K} 1149 1150 test space-7.0.2.3 {check for newlines before and after value unit string} { 1151 list [catch {Rappture::Units::Search::for "\n300K\n"} msg] $msg 1152 } {0 K} 1153 1154 test space-7.0.2.4 {check for newlines between value and unit string} { 1155 list [catch {Rappture::Units::Search::for "\n300\nK\n"} msg] $msg 1156 } {0 K} 1157 1158 test space-7.0.2.5 {check for newlines between value and single unit string} { 1159 list [catch {Rappture::Units::Search::for "300\nK"} msg] $msg 1160 } {0 K} 1161 1162 test space-7.0.2.6 {check for newlines between value and multiple unit string} { 1163 list [catch {Rappture::Units::Search::for "300\nKft"} msg] $msg 1164 } {0 Kft} 1165 1166 test space-7.0.2.7 {check for newlines around and between value and multiple unit string} { 1167 list [catch {Rappture::Units::Search::for "\n300\nKft\n"} msg] $msg 1168 } {0 Kft} 1169 1170 test space-7.0.2.8 {check for newlines between multiple unit string} { 1171 list [catch {Rappture::Units::Search::for "300\nK\nft"} msg] $msg 1172 } {0 Kft} 1173 1174 test space-7.0.2.9 {check for newlines around and between multiple unit string} { 1175 list [catch {Rappture::Units::Search::for "\n300\nK\nft\n"} msg] $msg 1176 } {0 Kft} 1177 1178 test space-7.0.2.10 {check for newlines between multiple unit string with division} { 1179 list [catch {Rappture::Units::Search::for "300\nK\n/\nft"} msg] $msg 1180 } {0 K/ft} 1181 1182 test space-7.0.2.11 {check for newlines between multiple unit string with multiplication} { 1183 list [catch {Rappture::Units::Search::for "300\nK\n*\nft"} msg] $msg 1184 } {0 Kft} 1185 1186 # TODO: 1187 # add tests for space and tab, space and newline, tab and newline 1188 # add tests for bad characters &^%$#@!)(~`{}[]:;"'?><,.-_=+\ or | 1189 1033 1190 ::tcltest::cleanupTests 1034 1191 return -
branches/blt4/src/core/RpLibrary.cc
r1527 r1824 27 27 #include <iterator> 28 28 #include <cctype> 29 30 #ifdef _POSIX_SOURCE 31 #include <sys/time.h> 32 #endif /* _POSIX_SOURCE */ 29 33 30 34 // no arg constructor … … 2200 2204 2201 2205 if (this->root) { 2206 #ifdef _POSIX_SOURCE 2207 // if the posix function gettimeofday is available, 2208 // we can get more precision on the time and more 2209 // unique filenames. 2210 struct timeval tv; 2211 gettimeofday(&tv,NULL); 2212 outputFile << "run" << tv.tv_sec << tv.tv_usec << ".xml"; 2213 #else 2202 2214 outputFile << "run" << (int)time(&t) << ".xml"; 2215 #endif 2203 2216 file.open(outputFile.str().c_str(),std::ios::out); 2204 2217 -
branches/blt4/src/core/RpUnits.cc
r1571 r1824 1025 1025 const RpUnits* prefix = NULL; 1026 1026 1027 1028 1027 while ( !myInUnits.empty() ) { 1029 1028 … … 1044 1043 // type = myInUnits[last] + type; 1045 1044 // ignore * because we assume everything is multiplied together 1045 myInUnits.erase(last); 1046 continue; 1047 } 1048 1049 // ignore whitespace characters 1050 if (isspace(myInUnits[last])) { 1051 // ignore whitespace characters, they represent multiplication 1046 1052 myInUnits.erase(last); 1047 1053 continue; … … 2590 2596 2591 2597 fahrenheit = RpUnits::define("F", NULL, RP_TYPE_TEMP); 2592 celcius = RpUnits::define("C", NULL, RP_TYPE_TEMP );2593 kelvin = RpUnits::define("K", NULL, RP_TYPE_TEMP );2598 celcius = RpUnits::define("C", NULL, RP_TYPE_TEMP, RPUNITS_METRIC); 2599 kelvin = RpUnits::define("K", NULL, RP_TYPE_TEMP,RPUNITS_METRIC); 2594 2600 rankine = RpUnits::define("R", NULL, RP_TYPE_TEMP); 2595 2601 … … 3288 3294 retVal = 1; 3289 3295 } 3290 else {3291 }3292 3296 3293 3297 outUnits = std::string(endptr); -
branches/blt4/src/core/scew_extras.c
r1018 r1824 128 128 129 129 assert(element != NULL); 130 assert(bytes != NULL);131 130 assert(nbytes != NULL); 132 133 131 if (*nbytes == 0) { 134 132 return element->contents; 135 133 } 134 assert(bytes != NULL); 136 135 137 136 free(element->contents);
Note: See TracChangeset
for help on using the changeset viewer.