jobject arfsd2ArFSDirective(JNIEnv *env, void *v_arfsd) { jclass cls; jmethodID mid; jobject newObj; ar_fs_directive_t *arfsd = (ar_fs_directive_t *)v_arfsd; PTRACE(2, "jni:arfsd2ArFSDirective entry"); cls = (*env)->FindClass(env, BASEPKG"/arc/ArFSDirective"); mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;[L"BASEPKG"/arc/Criteria;Ljava/lang/String;" "SJZZI[L"BASEPKG"/arc/Copy;JIJI)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(arfsd->fs_name), lst2jarray(env, arfsd->ar_set_criteria, BASEPKG"/arc/Criteria", crit2Criteria), JSTRING(arfsd->log_path), (jshort)arfsd->scan_method, (jlong)arfsd->fs_interval, JBOOL(arfsd->wait), JBOOL(arfsd->archivemeta), (jint)arfsd->num_copies, arrOfPtrs2jarray(env, (void**)arfsd->fs_copy, /* metadata copies */ MAX_COPY, BASEPKG"/arc/Copy", copy2Copy), (jlong)(arfsd->change_flag), (jint)(arfsd->options), (jlong)(arfsd->bg_interval), (jint)(arfsd->bg_time)); PTRACE(2, "jni:arfsd2ArFSDirective() done"); return (newObj); }
jobject arcopyinst2ArCopyProc(JNIEnv *env, void *v_arcopyinst) { jclass cls; jmethodID mid; jobject newObj; struct ArcopyInstance *cpi = (struct ArcopyInstance *)v_arcopyinst; PTRACE(2, "jni:arcopyinst2ArCopyProc(%llu,%llu,%d,%s,%s)", cpi->CiBytesWritten, cpi->CiSpace, cpi->CiFiles, Str(cpi->CiMtype), Str(cpi->CiVsn)); cls = (*env)->FindClass(env, BASEPKG"/arc/job/ArCopyProc"); mid = (*env)->GetMethodID(env, cls, "<init>", "(JJJIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); newObj = (*env)->NewObject(env, cls, mid, (jlong)(cpi->CiBytesWritten / 1024), // KB to handle fsize_t (jlong)(cpi->CiSpace / 1024), // KB required to archive all files (jlong)cpi->CiPid, (jint)cpi->CiFiles, (jint)cpi->CiFilesWritten, JSTRING(cpi->CiMtype), JSTRING(cpi->CiVsn), JSTRING(cpi->CiOprmsg)); PTRACE(2, "jni:arcopyinst2ArCopyProc() done"); return (newObj); }
jobject cparams2CopyParams(JNIEnv *env, void *v_cparams) { jclass cls; jmethodID mid; jobject newObj; ar_set_copy_params_t *cp = (ar_set_copy_params_t *)v_cparams; PTRACE(2, "jni:cparams2CopyParams entry"); if (cp == NULL) { PTRACE(2, "jni: cparams2CopyParams called with NULL v_cparams"); return (NULL); } cls = (*env)->FindClass(env, BASEPKG"/arc/CopyParams"); mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;IZLjava/lang/String;ILjava/lang/String;" "Ljava/lang/String;Ljava/lang/String;ZZ[L"BASEPKG"/arc/ArPriority;" "ZIIIISJILjava/lang/String;Ljava/lang/String;" "L"BASEPKG"/rec/RecyclerParams;IZZSJJJ)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(cp->ar_set_copy_name), (jint)cp->bufsize, JBOOL(cp->buflock), ull2jstr(env, cp->archmax), (jint)cp->drives, ull2jstr(env, cp->drivemax), ull2jstr(env, cp->drivemin), JSTRING(cp->disk_volume), JBOOL(cp->fillvsns), JBOOL(cp->tapenonstop), lst2jarray(env, cp->priority_lst, BASEPKG"/arc/ArPriority", priority2ArPriority), JBOOL(cp->unarchage), (jint)cp->join, (jint)cp->rsort, (jint)cp->sort, (jint)cp->offline_copy, (jshort)cp->reserve, uint2jlong(cp->startage), (jint)cp->startcount, ull2jstr(env, cp->startsize), ull2jstr(env, cp->ovflmin), recparams2RecyclerParams(env, &cp->recycle), // DEBUG params (jint)cp->simdelay, JBOOL(cp->tstovfl), JBOOL(cp->directio), (jshort)(cp->rearch_stage_copy), (jlong)(cp->change_flag), (jlong)(cp->queue_time_limit), (jlong)(cp->fillvsns_min)); PTRACE(2, "jni:cparams2CopyParams() done"); return (newObj); }
JNIEXPORT jstring JNICALL Java_com_sun_netstorage_samqfs_mgmt_fs_Restore_searchFiles(JNIEnv *env, jclass cls /*ARGSUSED*/, jobject ctx, jstring fsname, jstring dumppath, jint entries, jstring filepath, jstring restrictions) { char *str = NULL; jboolean isCopy, isCopy2, isCopy3, isCopy4; char *fstr = GET_STR(fsname, isCopy); char *dstr = GET_STR(dumppath, isCopy2); char *cstr = GET_STR(filepath, isCopy3); char *rstr = GET_STR(restrictions, isCopy4); PTRACE(1, "jni:Restore_searchFiles(...,%s, %s) entry", Str(cstr), Str(rstr)); if (-1 == search_versions(CTX, fstr, dstr, (int)entries, cstr, rstr, &str)) { REL_STR(fsname, fstr, isCopy); REL_STR(dumppath, dstr, isCopy2); REL_STR(filepath, cstr, isCopy3); REL_STR(restrictions, rstr, isCopy4); ThrowEx(env); return (NULL); } REL_STR(fsname, fstr, isCopy); REL_STR(dumppath, dstr, isCopy2); REL_STR(filepath, cstr, isCopy3); REL_STR(restrictions, rstr, isCopy4); PTRACE(1, "jni:Restore_searchFiles() done"); return (JSTRING(str)); }
void ThrowEx(JNIEnv *env) { jclass ec; jmethodID mid; jthrowable throwObj; char className[100]; PTRACE(1, "jni:error %d recvd: %s.", samerrno, samerrmsg); if ((samerrno >= SE_SAMRPC_API_BEGIN && samerrno <= SE_RPC_NOT_YET) || samerrno == SE_NETWORK_DOWN) { strcpy(className, BASEPKG"/SamFSCommException"); } else { switch (samerrno) { case SE_RPC_TIMEDOUT: strcpy(className, BASEPKG"/SamFSTimeoutException"); break; case SE_RPC_INSECURE_CLIENT: strcpy(className, BASEPKG"/SamFSAccessDeniedException"); break; default: strcpy(className, BASEPKG"/SamFSException"); } } PTRACE(1, "jni:throw %s", className); ec = (*env)->FindClass(env, className); mid = (*env)->GetMethodID(env, ec, "<init>", "(Ljava/lang/String;I)V"); throwObj = (*env)->NewObject(env, ec, mid, JSTRING(samerrmsg), (jint)samerrno); (*env)->Throw(env, throwObj); }
JNIEXPORT jstring JNICALL Java_com_sun_netstorage_samqfs_mgmt_fs_Restore_restoreInodes(JNIEnv *env, jclass cls /*ARGSUSED*/, jobject ctx, jstring fsname, jstring dumppath, jobjectArray filepaths, jobjectArray destinations, jintArray copies, jint replaceType) { char *str = NULL; jboolean isCopy, isCopy2; char *fstr = GET_STR(fsname, isCopy); char *dstr = GET_STR(dumppath, isCopy2); PTRACE(1, "jni:Restore_restoreInodes() entry"); if (-1 == restore_inodes(CTX, fstr, dstr, jarray2lst(env, filepaths, "java/Lang/String", String2charr), jarray2lst(env, destinations, "java/Lang/String", String2charr), jintArray2lst(env, copies), replaceType, &str)) { REL_STR(fsname, fstr, isCopy); REL_STR(dumppath, dstr, isCopy2); ThrowEx(env); return (NULL); } REL_STR(fsname, fstr, isCopy); REL_STR(dumppath, dstr, isCopy2); PTRACE(1, "jni:Restore_restoreInodes() done"); return (JSTRING(str)); }
jobject host2Host(JNIEnv *env, void *v_host_info) { jclass cls; jmethodID mid; jobject newObj; host_info_t *h = (host_info_t *)v_host_info; PTRACE(3, "jni:%s|%d|%d|%d|%d", Str(h->host_name), (NULL == h->ip_addresses) ? -1 : h->ip_addresses->length, h->server_priority, h->state, h->current_server); PTRACE(2, "jni:host2Host() entry"); cls = (*env)->FindClass(env, BASEPKG"/fs/Host"); /* call the private constructor to initialize all fields */ mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;[Ljava/lang/String;IZI)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(h->host_name), lst2jarray(env, h->ip_addresses, "java/lang/String", charr2String), (jint)h->server_priority, JBOOL(h->current_server), (jint)h->state); PTRACE(2, "jni:host2Host() done"); return (newObj); }
JNIEXPORT jstring JNICALL Java_com_sun_netstorage_samqfs_mgmt_fs_Restore_takeDump(JNIEnv *env, jclass cls /*ARGSUSED*/, jobject ctx, jstring fsname, jstring dumppath) { char *str = NULL; jboolean isCopy, isCopy2; char *fstr = GET_STR(fsname, isCopy); char *dstr = GET_STR(dumppath, isCopy2); PTRACE(1, "jni:Restore_takeDump(...,%s, %s) entry", Str(fstr), Str(dstr)); if (-1 == take_dump(CTX, fstr, dstr, &str)) { REL_STR(fsname, fstr, isCopy); REL_STR(dumppath, dstr, isCopy2); ThrowEx(env); return (NULL); } REL_STR(fsname, fstr, isCopy); REL_STR(dumppath, dstr, isCopy2); PTRACE(1, "jni:Restore_takeDump() done"); return (JSTRING(str)); }
void JniFirebase::AuthWithPassword (const char* email, const char* password, long callback) { auto env = getEnv(); if (!GetClass(env, "jnistub/AuthPasswordStub", &s_passwordClass)) { return; } if (!GetMethod(env, s_passwordClass, "<init>", "(Lcom/firebase/client/Firebase;JLjava/lang/String;Ljava/lang/String;)V", &s_passwordCtor)) { return; } JOBJECT localRef = JOBJECT(env, env->NewObject(s_passwordClass, s_passwordCtor, getJniObject(), (jlong)callback, (jstring)JSTRING(env, env->NewStringUTF(email)), (jstring)JSTRING(env, env->NewStringUTF(password)))); }
void JniFirebase::AuthWithOAuthToken (const char* provider, const char* token, long callback) { auto env = getEnv(); if (!GetClass(env, "jnistub/AuthOAuthStub", &s_oauthClass)) { return; } if (!GetMethod(env, s_oauthClass, "<init>", "(Lcom/firebase/client/Firebase;JLjava/lang/String;Ljava/lang/String;)V", &s_oauthCtor)) { return; } JOBJECT localRef = JOBJECT(env, env->NewObject(s_oauthClass, s_oauthCtor, getJniObject(), (jlong)callback, (jstring)JSTRING(env, env->NewStringUTF(provider)), (jstring)JSTRING(env, env->NewStringUTF(token)))); }
/* * convert an unsigned long long to a jstring (does not fit a jlong) */ jstring ull2jstr(JNIEnv *env, unsigned long long val) { static char buf[21]; /* size of 2^64-1 in decimal representation */ buf[20] = '\0'; if (val == fsize_reset) // field not set return (NULL); else return (JSTRING(ulltostr(val, &buf[20]))); }
jobject arglobd2ArGlobalDirective(JNIEnv *env, void *v_arglobd) { jclass cls; jmethodID mid; jobject newObj; ar_global_directive_t *argd = (ar_global_directive_t *)v_arglobd; PTRACE(2, "jni:arglobd2ArGlobalDirective entry"); cls = (*env)->FindClass(env, BASEPKG"/arc/ArGlobalDirective"); mid = (*env)->GetMethodID(env, cls, "<init>", "([L"BASEPKG"/arc/BufDirective;[L"BASEPKG"/arc/BufDirective;" "[L"BASEPKG"/arc/BufDirective;[L"BASEPKG"/arc/DrvDirective;" "JSLjava/lang/String;Ljava/lang/String;ZZ" "[L"BASEPKG"/arc/Criteria;JI[Ljava/lang/String;JI)V"); newObj = (*env)->NewObject(env, cls, mid, lst2jarray(env, argd->ar_bufs, BASEPKG"/arc/BufDirective", bufdir2BufDirective), lst2jarray(env, argd->ar_max, BASEPKG"/arc/BufDirective", bufdir2BufDirective), lst2jarray(env, argd->ar_overflow_lst, BASEPKG"/arc/BufDirective", bufdir2BufDirective), lst2jarray(env, argd->ar_drives, BASEPKG"/arc/DrvDirective", drvdir2DrvDirective), (jlong)(argd->ar_interval), (jshort)argd->scan_method, JSTRING(argd->log_path), JSTRING(argd->notify_script), JBOOL(argd->wait), JBOOL(argd->archivemeta), lst2jarray(env, argd->ar_set_lst, BASEPKG"/arc/Criteria", crit2Criteria), (jlong)(argd->change_flag), (jint)(argd->options), lst2jarray(env, argd->timeouts, "java/lang/String", charr2String), (jlong)(argd->bg_interval), (jint)(argd->bg_time)); PTRACE(2, "jni:arglobd2ArGlobalDirective() done"); return (newObj); }
void JniFirebase::SetString(const char *value) { if (!m_firebase) { return; } auto env = getEnv(); if (!GetMethod(env, s_firebaseClass, s_firebaseSetValueName, s_firebaseSetValueSig, &s_firebaseSetValue)) { return; } env->CallVoidMethod(m_firebase, s_firebaseSetValue, (jstring)JSTRING(env, env->NewStringUTF(value))); }
void JRealComplexObj::access(int n, JLinkObj& link, const JDataType& data) { switch (n) { case OUT_DATA : JCOMPLEX(data) = cval; break; case OUT_STRING : JSTRING(data) = label; break; default: JLabelObj::access(n, link, data); } }
jobject archset2ArSet(JNIEnv *env, void *v_arch_set) { jclass cls; jmethodID mid; jobject newObj; arch_set_t *as = (arch_set_t *)v_arch_set; PTRACE(2, "jni:archset2ArSet() entry"); if (as == NULL) return (NULL); cls = (*env)->FindClass(env, BASEPKG"/arc/ArSet"); mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;" "Ljava/lang/String;" "S[L"BASEPKG"/arc/Criteria;" "[L"BASEPKG"/arc/CopyParams;" "[L"BASEPKG"/arc/CopyParams;" "[L"BASEPKG"/arc/VSNMap;" "[L"BASEPKG"/arc/VSNMap;)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(as->name), JSTRING(as->description), (jshort)(as->type), lst2jarray(env, as->criteria, BASEPKG"/arc/Criteria", crit2Criteria), arrOfPtrs2jarray(env, (void *) as->copy_params, 5, BASEPKG"/arc/CopyParams", cparams2CopyParams), arrOfPtrs2jarray(env, (void *) as->rearch_copy_params, 5, BASEPKG"/arc/CopyParams", cparams2CopyParams), arrOfPtrs2jarray(env, (void *) as->vsn_maps, 5, BASEPKG"/arc/VSNMap", map2VSNMap), arrOfPtrs2jarray(env, (void *) as->rearch_vsn_maps, 5, BASEPKG"/arc/VSNMap", map2VSNMap)); PTRACE(2, "jni:archset2ArSet() done"); return (newObj); }
void ThrowWarnings(JNIEnv *env, jobjectArray msgs) { jclass ec; jmethodID mid; jthrowable throwObj; PTRACE(1, "jni:warnings received"); ec = (*env)->FindClass(env, BASEPKG"/SamFSWarnings"); mid = (*env)->GetMethodID(env, ec, "<init>", "(Ljava/lang/String;[Ljava/lang/String;)V"); throwObj = (*env)->NewObject(env, ec, mid, JSTRING(samerrmsg), msgs); (*env)->Throw(env, throwObj); }
jobject archreq2ArchReq(JNIEnv *env, void *v_archreq) { jclass cls; jmethodID mid; jobject newObj; struct ArchReq *areq = (struct ArchReq *)v_archreq; int file_count; PTRACE(2, "jni:archreq2ArchReq entry"); cls = (*env)->FindClass(env, BASEPKG"/arc/job/ArchReq"); mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;Ljava/lang/String;JIJIIJS" "[L"BASEPKG"/arc/job/ArCopyProc;)V"); /* Showqueue uses ArCount if ArFiles is 0 so we will too. */ file_count = (areq->ArFiles != 0) ? areq->ArFiles : areq->ArCount; newObj = (*env)->NewObject(env, cls, mid, JSTRING(areq->ArFsname), JSTRING(areq->ArAsname), (jlong)areq->ArTime, (jint)areq->ArState, (jlong)areq->ArSeqnum, (jint)areq->ArDrivesUsed, (jint)file_count, (jlong)(areq->ArSpace / 1024), (jshort)areq->ArFlags, arr2jarray(env, areq->ArCpi, sizeof (struct ArcopyInstance), areq->ArDrives, BASEPKG"/arc/job/ArCopyProc", arcopyinst2ArCopyProc)); PTRACE(2, "jni:archreq2ArchReq() done"); return (newObj); }
JniFirebase::JniFirebase(const char* path) { auto env = getEnv(); if (!GetClass(env, "com/firebase/client/Firebase", &s_firebaseClass)) { return; } if (!GetMethod(env, s_firebaseClass, "<init>", "(Ljava/lang/String;)V", &s_firebaseCtor)) { return; } JOBJECT localRef = JOBJECT(env, env->NewObject(s_firebaseClass, s_firebaseCtor, (jstring)JSTRING(env, env->NewStringUTF(path)))); m_firebase = env->NewGlobalRef(localRef); }
void ThrowMultiStepOpEx(JNIEnv *env, int failedStep) { jclass ec; jmethodID mid; jthrowable throwObj; PTRACE(1, "jni:throw SamFSMultiStepOpException(%d)", failedStep); ec = (*env)->FindClass(env, BASEPKG"/SamFSMultiStepOpException"); mid = (*env)->GetMethodID(env, ec, "<init>", "(Ljava/lang/String;II)V"); throwObj = (*env)->NewObject(env, ec, mid, JSTRING(samerrmsg), (jint)samerrno, (jint)failedStep); (*env)->Throw(env, throwObj); }
void ThrowMultiMsgEx(JNIEnv *env, jobjectArray msgs) { jclass ec; jmethodID mid; jthrowable throwObj; PTRACE(1, "jni:multimsg error %d received: %s.", samerrno, Str(samerrmsg)); ec = (*env)->FindClass(env, BASEPKG"/SamFSMultiMsgException"); mid = (*env)->GetMethodID(env, ec, "<init>", "(Ljava/lang/String;I[Ljava/lang/String;)V"); throwObj = (*env)->NewObject(env, ec, mid, JSTRING(samerrmsg), (jint)samerrno, msgs); (*env)->Throw(env, throwObj); }
JNIEXPORT jstring JNICALL Java_com_sun_netstorage_samqfs_mgmt_arc_Archiver_archiveFiles(JNIEnv *env, jclass cls /* ARGSUSED */, jobject ctx, jobjectArray files, jint options) { char *jobID; PTRACE(1, "jni:Releaser_releaseFiles() entry"); if (-1 == archive_files(CTX, jarray2lst(env, files, "java/lang/String", String2charr), (int32_t)options, &jobID)) { ThrowEx(env); return (NULL); } PTRACE(1, "jni:Archiver_archiveFiles() exit"); return (JSTRING(jobID)); }
void JniFirebase::SetJson(const char *value) { auto env = getEnv(); if (s_objectMapperInstance == NULL) { lock<std::mutex> lock(s_objectMapperLock); if (s_objectMapperInstance == NULL) { if (!GetClass(env, "java/util/HashMap", &s_objectClass)) { return; } if (!GetClass(env, s_objectMapperClassName, &s_objectMapperClass)) { return; } jmethodID ctor = NULL; if (!GetMethod(env, s_objectMapperClass, "<init>", "()V", &ctor)) { return; } if (!GetMethod(env, s_objectMapperClass, s_objectMapperReadValueName, s_objectMapperReadValueSig, &s_objectMapperReadValue)) { return; } JOBJECT localRef = JOBJECT(env, env->NewObject(s_objectMapperClass, ctor)); s_objectMapperInstance = env->NewGlobalRef(localRef); } } JOBJECT localValue = JOBJECT(env, env->CallObjectMethod(s_objectMapperInstance, s_objectMapperReadValue, (jstring)JSTRING(env, env->NewStringUTF(value)), s_objectClass)); if (env->ExceptionCheck() == JNI_TRUE) { SetString(GetJNIExceptionDescription(env, env->ExceptionOccurred())); return; } if (!GetMethod(env, s_firebaseClass, s_firebaseSetValueName, s_firebaseSetValueSig, &s_firebaseSetValue)) { return; } env->CallVoidMethod(m_firebase, s_firebaseSetValue, (jobject)localValue); }
jobject drvdir2DrvDirective(JNIEnv *env, void *v_drvdir) { jclass cls; jmethodID mid; jobject newObj; drive_directive_t *dd = (drive_directive_t *)v_drvdir; PTRACE(2, "jni:drvdir2DrvDirective() entry"); cls = (*env)->FindClass(env, BASEPKG"/arc/DrvDirective"); mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;IJ)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(dd->auto_lib), (jint)dd->count, (jlong)(dd->change_flag)); PTRACE(2, "jni:drvdir2DrvDirective() done"); return (newObj); }
jobject reldir2ReleaserDirective(JNIEnv *env, void *v_reldir) { jclass cls; jmethodID mid; jobject newObj; float sprio, aprio, mprio, rprio; rl_fs_directive_t *rl = (rl_fs_directive_t *)v_reldir; PTRACE(2, "jni:reldir2ReleaserDirective(%x,%x)", env, rl); sprio = aprio = mprio = rprio = -1; if (SIMPLE_AGE_PRIO == rl->type) sprio = rl->age_priority.simple; if (DETAILED_AGE_PRIO == rl->type) { aprio = rl->age_priority.detailed.access_weight; mprio = rl->age_priority.detailed.modify_weight; rprio = rl->age_priority.detailed.residence_weight; } cls = (*env)->FindClass(env, BASEPKG"/rel/ReleaserDirective"); /* call the private constructor to initialize all fields */ mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;JZZZZIFSFFFFI)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(rl->releaser_log), (jlong)rl->min_residence_age, JBOOL(rl->no_release), JBOOL(rl->rearch_no_release), JBOOL(rl->display_all_candidates), JBOOL(rl->debug_partial), (jint)rl->list_size, (jfloat)rl->size_priority, (jshort)rl->type, (jfloat)sprio, (jfloat)aprio, (jfloat)mprio, (jfloat)rprio, (jint)rl->change_flag); PTRACE(2, "jni:reldir2ReleaserDirective done", env, rl); return (newObj); }
jobject crit2Criteria(JNIEnv *env, void *v_arcrit) { jclass cls; jmethodID mid; jobject newObj; ar_set_criteria_t *crit = (ar_set_criteria_t *)v_arcrit; PTRACE(2, "jni:crit2Criteria() entry"); cls = (*env)->FindClass(env, BASEPKG"/arc/Criteria"); mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;" "Ljava/lang/String;" "Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;" "Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;" "CCI[L"BASEPKG"/arc/Copy;S[BZLjava/lang/String;" "JII)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(crit->fs_name), JSTRING(crit->set_name), JSTRING(crit->path), JSTRING(crit->name), /* regexp */ (crit->minsize == fsize_reset) ? NULL : ull2jstr(env, crit->minsize), (crit->maxsize == fsize_reset) ? NULL : ull2jstr(env, crit->maxsize), JSTRING(crit->user), JSTRING(crit->group), (jchar)(crit->release), (jchar)(crit->stage), (jint)crit->access, arrOfPtrs2jarray(env, (void**)crit->arch_copy, MAX_COPY, BASEPKG"/arc/Copy", copy2Copy), (jshort)(crit->num_copies), convertKeyC2J(env, crit->key), JBOOL(crit->nftv), JSTRING(crit->after), (jlong)(crit->change_flag), (jint)(crit->attr_flags), (jint)(crit->partial_size)); PTRACE(2, "jni:crit2Criteria() done"); return (newObj); }
jobject relfs2ReleaserJob(JNIEnv *env, void *v_relfs) { jclass cls; jmethodID mid; jobject newObj; release_fs_t *relfs = (release_fs_t *)v_relfs; PTRACE(1, "jni:relfs2ReleaserJob() entry"); cls = (*env)->FindClass(env, BASEPKG"/rel/ReleaserJob"); /* call the private constructor to initialize all fields */ mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;SS)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(relfs->fi_name), (jshort)relfs->fi_low, (jshort)relfs->used_pct); PTRACE(1, "jni:relfs2ReleaserJob() done"); return (newObj); }
JNIEXPORT jstring JNICALL Java_com_sun_netstorage_samqfs_mgmt_fs_Host_getMetadataServerName( JNIEnv *env, jclass cls /*ARGSUSED*/, jobject ctx, jstring fsName) { jboolean isCopy; char *cstr = GET_STR(fsName, isCopy); char *res = NULL; PTRACE(1, "jni:Host_getMetadataServerName() entry"); if (-1 == get_mds_host(CTX, cstr, &res)) { REL_STR(fsName, cstr, isCopy); ThrowEx(env); return (NULL); } REL_STR(fsName, cstr, isCopy); PTRACE(1, "jni:Host_getMetadataServerName() done"); return (JSTRING(res)); }
jobject bufdir2BufDirective(JNIEnv *env, void *v_bufdir) { jclass cls; jmethodID mid; jobject newObj; buffer_directive_t *bd = (buffer_directive_t *)v_bufdir; PTRACE(2, "jni:bufdir2BufDirective() entry"); cls = (*env)->FindClass(env, BASEPKG"/arc/BufDirective"); mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;Ljava/lang/String;ZJ)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(bd->media_type), ull2jstr(env, bd->size), JBOOL(bd->lock), (jlong)(bd->change_flag)); PTRACE(2, "jni:bufdir2BufDirective() done"); return (newObj); }
JNIEXPORT jstring JNICALL Java_com_sun_netstorage_samqfs_mgmt_fs_Restore_getParams(JNIEnv *env, jclass cls /*ARGSUSED*/, jobject ctx, jstring fsname) { char *str = NULL; jboolean isCopy; char *cstr = GET_STR(fsname, isCopy); PTRACE(1, "jni:Restore_getParams(..., %s)", Str(cstr)); if (-1 == get_csd_params(CTX, cstr, &str)) { REL_STR(fsname, cstr, isCopy); ThrowEx(env); return (NULL); } REL_STR(fsname, cstr, isCopy); PTRACE(1, "jni:Restore_getParams() done %s", Str(str)); return (JSTRING(str)); }
jobject priority2ArPriority(JNIEnv *env, void *v_prio) { jclass cls; jmethodID mid; jobject newObj; priority_t *prio = (priority_t *)v_prio; PTRACE(2, "jni:priority2ArPriority() entry"); cls = (*env)->FindClass(env, BASEPKG"/arc/ArPriority"); mid = (*env)->GetMethodID(env, cls, "<init>", "(Ljava/lang/String;FI)V"); newObj = (*env)->NewObject(env, cls, mid, JSTRING(prio->priority_name), (jfloat)prio->value, (jint)prio->change_flag); PTRACE(2, "jni:priority2ArPriority() done"); return (newObj); }