You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2009/11/16 16:37:53 UTC
svn commit: r880802 - in /activemq/sandbox/activemq-apollo/activemq-syscall:
activemq-syscall/ src/main/java/org/apache/activemq/syscall/
src/main/native-package/ src/main/native-package/src/
Author: chirino
Date: Mon Nov 16 15:37:53 2009
New Revision: 880802
URL: http://svn.apache.org/viewvc?rev=880802&view=rev
Log:
starting to beef up the aio interface..
Removed:
activemq/sandbox/activemq-apollo/activemq-syscall/activemq-syscall/
Modified:
activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/AIO.java
activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/CLibrary.java
activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/IO.java
activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/configure.ac
activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/src/activemq-syscall.h
Modified: activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/AIO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/AIO.java?rev=880802&r1=880801&r2=880802&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/AIO.java (original)
+++ activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/AIO.java Mon Nov 16 15:37:53 2009
@@ -23,6 +23,8 @@
import org.fusesource.hawtjni.runtime.JniField;
import org.fusesource.hawtjni.runtime.JniMethod;
+import static org.fusesource.hawtjni.runtime.ArgFlag.*;
+
import static org.fusesource.hawtjni.runtime.MethodFlag.*;
/**
@@ -31,12 +33,25 @@
* @author <a href="http://hiramchirino.com">Hiram Chirino</a>
*/
@JniClass
-public class AIO extends CLibrary {
+public class AIO {
+ static {
+ CLibrary.LIBRARY.load();
+ init();
+ }
+
+ @JniMethod(flags={CONSTANT_INITIALIZER})
+ private static final native void init();
+
+ @JniField(flags={FieldFlag.CONSTANT})
+ public static int EINPROGRESS;
+
+// @JniField(flags={FieldFlag.CONSTANT})
+// public static int ECANCELLED;
@JniClass(flags={ClassFlag.STRUCT})
static public class aiocb {
static {
- LIBRARY.load();
+ CLibrary.LIBRARY.load();
init();
}
@@ -46,18 +61,28 @@
@JniField(flags={FieldFlag.CONSTANT}, accessor="sizeof(struct aiocb)")
public static int SIZEOF;
- int aio_fildes;
+ public int aio_fildes;
@JniField(cast="void *")
- long aio_buf;
+ public long aio_buf;
@JniField(cast="size_t")
- long aio_nbytes;
+ public long aio_nbytes;
@JniField(cast="off_t")
- long aio_offset;
+ public long aio_offset;
// Don't need to access these right now:
// int aio_reqprio;
// struct sigevent aio_sigevent
// int aio_lio_opcode;
// int aio_flags;
+
+ public static final native void memmove (
+ @JniArg(cast="void *", flags={NO_IN, CRITICAL}) aiocb dest,
+ @JniArg(cast="const void *") long src,
+ @JniArg(cast="size_t") long size);
+
+ public static final native void memmove (
+ @JniArg(cast="void *") long dest,
+ @JniArg(cast="const void *", flags={NO_OUT, CRITICAL}) aiocb src,
+ @JniArg(cast="size_t") long size);
}
@JniClass(flags={ClassFlag.STRUCT})
@@ -82,6 +107,14 @@
/**
* <code><pre>
+ * int aio_write(struct aiocb *aiocbp);
+ * </pre></code>
+ */
+ public static final native int aio_write(
+ @JniArg(cast="struct aiocb *")long aiocbp);
+
+ /**
+ * <code><pre>
* int aio_cancel(int fd, struct aiocb *aiocbp);
* </pre></code>
*/
Modified: activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/CLibrary.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/CLibrary.java?rev=880802&r1=880801&r2=880802&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/CLibrary.java (original)
+++ activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/CLibrary.java Mon Nov 16 15:37:53 2009
@@ -20,6 +20,7 @@
import org.fusesource.hawtjni.runtime.JniClass;
import org.fusesource.hawtjni.runtime.JniMethod;
import org.fusesource.hawtjni.runtime.Library;
+import org.fusesource.hawtjni.runtime.MethodFlag;
import static org.fusesource.hawtjni.runtime.ArgFlag.*;
import static org.fusesource.hawtjni.runtime.Pointer.*;
@@ -35,6 +36,11 @@
LIBRARY.load();
}
+ final public static long NULL = 0;
+
+ @JniMethod(flags={MethodFlag.CONSTANT})
+ public static final native int errno();
+
///////////////////////////////////////////////////////////////////
//
// String related methods
Modified: activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/IO.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/IO.java?rev=880802&r1=880801&r2=880802&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/IO.java (original)
+++ activemq/sandbox/activemq-apollo/activemq-syscall/src/main/java/org/apache/activemq/syscall/IO.java Mon Nov 16 15:37:53 2009
@@ -29,11 +29,12 @@
* @author <a href="http://hiramchirino.com">Hiram Chirino</a>
*/
@JniClass
-public class IO extends CLibrary {
+public class IO {
@JniMethod(flags={CONSTANT_INITIALIZER})
private static final native void init();
static {
+ CLibrary.LIBRARY.load();
init();
}
Modified: activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/configure.ac
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/configure.ac?rev=880802&r1=880801&r2=880802&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/configure.ac (original)
+++ activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/configure.ac Mon Nov 16 15:37:53 2009
@@ -52,6 +52,8 @@
done
])
+AC_CHECK_HEADER([sys/errno.h],[AC_DEFINE([HAVE_SYS_ERRNO_H], [1], [Define to 1 if you have the <sys/errno.h> header file.])])
+
CFLAGS="$CFLAGS $JNI_EXTRA_CFLAGS"
LDFLAGS="$LDFLAGS $JNI_EXTRA_LDFLAGS -release $PACKAGE_VERSION"
Modified: activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/src/activemq-syscall.h
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/src/activemq-syscall.h?rev=880802&r1=880801&r2=880802&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/src/activemq-syscall.h (original)
+++ activemq/sandbox/activemq-apollo/activemq-syscall/src/main/native-package/src/activemq-syscall.h Mon Nov 16 15:37:53 2009
@@ -28,6 +28,9 @@
#include <aio.h>
#endif
-#include <fcntl.h>
+#ifdef HAVE_SYS_ERRNO_H
+ #include <sys/errno.h>
+#endif
-#endif /* INCLUDED_ACTIVEMQ_SYSCALL_H */
\ No newline at end of file
+#include <fcntl.h>
+#endif /* INCLUDED_ACTIVEMQ_SYSCALL_H */