Skip to content

Commit

Permalink
Fixed error initializing JNA interfaces for higher versions
Browse files Browse the repository at this point in the history
  • Loading branch information
klehmann committed Dec 19, 2019
1 parent af0087c commit 7b16884
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 28 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.mindoo.domino.jna.internal;

import java.util.Map;

import com.mindoo.domino.jna.internal.structs.IntlFormatStruct;
import com.mindoo.domino.jna.internal.structs.NotesBlockIdStruct;
import com.mindoo.domino.jna.internal.structs.NotesTimeDatePairStruct;
Expand All @@ -19,20 +17,6 @@

public interface INotesNativeAPI extends Library {
public static enum Mode {Classic, Direct}

/**
* Returns the mode that JNA uses to call native code
*
* @return mode
*/
public Mode getActiveJNAMode();

/**
* Returns the JNA initialization options (only public for technical reasons)
*
* @return options, read-only
*/
public Map<String, Object> getLibraryOptions();

public short NotesInitExtended(int argc, Memory argvPtr);
public void NotesTerm();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.mindoo.domino.jna.internal;

import com.sun.jna.Library;
import com.sun.jna.Memory;
import com.sun.jna.ptr.IntByReference;

public interface INotesNativeAPI32V1000 {
public interface INotesNativeAPI32V1000 extends Library {

@UndocumentedAPI
public short NSFQueryDB(int hDb, Memory query, int flags,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.mindoo.domino.jna.internal;

import com.sun.jna.Library;
import com.sun.jna.Memory;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.LongByReference;

public interface INotesNativeAPI64V1000 {
public interface INotesNativeAPI64V1000 extends Library {

@UndocumentedAPI
public short NSFQueryDB(long hDb, Memory query, int flags,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,21 @@ public class NotesNativeAPI implements INotesNativeAPI {
private static Mode m_activeMode;
private static Map<String, Object> m_libraryOptions;

@Override
public Mode getActiveJNAMode() {
/**
* Returns the mode that JNA uses to call native code
*
* @return mode
*/
public static Mode getActiveJNAMode() {
return m_activeMode;
}

@Override
public Map<String, Object> getLibraryOptions() {
/**
* Returns the JNA initialization options (only public for technical reasons)
*
* @return options, read-only
*/
public static Map<String, Object> getLibraryOptions() {
return m_libraryOptions==null ? null : Collections.unmodifiableMap(m_libraryOptions);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ public static INotesNativeAPI32V1000 get() {
}

if (m_instanceWithoutCrashLogging==null) {
Mode jnaMode = NotesNativeAPI.get().getActiveJNAMode();
Map<String,Object> libraryOptions = NotesNativeAPI.get().getLibraryOptions();
Mode jnaMode = NotesNativeAPI.getActiveJNAMode();
Map<String,Object> libraryOptions = NotesNativeAPI.getLibraryOptions();

if (jnaMode==Mode.Direct) {
NativeLibrary library;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ public static INotesNativeAPI64V1000 get() {
}

if (m_instanceWithoutCrashLogging==null) {
Mode jnaMode = NotesNativeAPI.get().getActiveJNAMode();
Map<String,Object> libraryOptions = NotesNativeAPI.get().getLibraryOptions();
Mode jnaMode = NotesNativeAPI.getActiveJNAMode();
Map<String,Object> libraryOptions = NotesNativeAPI.getLibraryOptions();

if (jnaMode==Mode.Direct) {
NativeLibrary library;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ public static INotesNativeAPIV901 get() {
}

if (m_instanceWithoutCrashLogging==null) {
Mode jnaMode = NotesNativeAPI.get().getActiveJNAMode();
Map<String,Object> libraryOptions = NotesNativeAPI.get().getLibraryOptions();
Mode jnaMode = NotesNativeAPI.getActiveJNAMode();
Map<String,Object> libraryOptions = NotesNativeAPI.getLibraryOptions();

if (jnaMode==Mode.Direct) {
NativeLibrary library;
Expand Down

0 comments on commit 7b16884

Please sign in to comment.