Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
L
libzmq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
libzmq
Commits
deda7ca5
Commit
deda7ca5
authored
Feb 26, 2010
by
Martin Sustrik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Java Poller patch
parent
4a1a8388
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
21 additions
and
128 deletions
+21
-128
.gitignore
.gitignore
+3
-0
Context.cpp
bindings/java/Context.cpp
+0
-106
Makefile.am
bindings/java/Makefile.am
+18
-4
Context.java
bindings/java/org/zmq/Context.java
+0
-18
No files found.
.gitignore
View file @
deda7ca5
...
...
@@ -44,9 +44,12 @@ bindings/python/setup.py
bindings/java/org_zmq_*.h
src/libzmq.pc
lib/
builds/msvc/*.suo
builds/msvc/*/*.user
builds/msvc/*/Debug
builds/msvc/*/Release
foreign/openpgm/*
!foreign/openpgm/*.tar.bz2
!foreign/openpgm/*.tar.gz
classdist_noinst.stamp
bindings/java/Zmq.jar
bindings/java/Context.cpp
View file @
deda7ca5
...
...
@@ -24,8 +24,6 @@
#include "org_zmq_Context.h"
static
void
*
fetch_socket
(
JNIEnv
*
env
,
jobject
socket
);
/** Handle to Java's Context::contextHandle. */
static
jfieldID
ctx_handle_fid
=
NULL
;
...
...
@@ -112,107 +110,3 @@ JNIEXPORT void JNICALL Java_org_zmq_Context_finalize (JNIEnv *env,
put_context
(
env
,
obj
,
NULL
);
assert
(
rc
==
0
);
}
JNIEXPORT
jlong
JNICALL
Java_org_zmq_Context_poll
(
JNIEnv
*
env
,
jobject
obj
,
jobjectArray
socket_0mq
,
jshortArray
event_0mq
,
jshortArray
revent_0mq
,
jlong
timeout
)
{
jsize
ls_0mq
=
0
;
jsize
le_0mq
=
0
;
jsize
lr_0mq
=
0
;
if
(
socket_0mq
)
ls_0mq
=
env
->
GetArrayLength
(
socket_0mq
);
if
(
event_0mq
)
le_0mq
=
env
->
GetArrayLength
(
event_0mq
);
if
(
revent_0mq
)
lr_0mq
=
env
->
GetArrayLength
(
revent_0mq
);
if
(
ls_0mq
!=
le_0mq
||
ls_0mq
!=
lr_0mq
)
return
0
;
jsize
ls
=
ls_0mq
;
if
(
ls
<=
0
)
return
0
;
zmq_pollitem_t
*
pitem
=
new
zmq_pollitem_t
[
ls
];
short
pc
=
0
;
int
rc
=
0
;
// Add 0MQ sockets.
if
(
ls_0mq
>
0
)
{
jshort
*
e_0mq
=
env
->
GetShortArrayElements
(
event_0mq
,
0
);
if
(
e_0mq
!=
NULL
)
{
for
(
int
i
=
0
;
i
<
ls_0mq
;
++
i
)
{
jobject
s_0mq
=
env
->
GetObjectArrayElement
(
socket_0mq
,
i
);
if
(
!
s_0mq
)
continue
;
void
*
s
=
fetch_socket
(
env
,
s_0mq
);
if
(
!
s
)
continue
;
pitem
[
pc
].
socket
=
s
;
pitem
[
pc
].
fd
=
0
;
pitem
[
pc
].
events
=
e_0mq
[
i
];
pitem
[
pc
].
revents
=
0
;
++
pc
;
}
env
->
ReleaseShortArrayElements
(
event_0mq
,
e_0mq
,
0
);
}
}
if
(
pc
==
ls
)
{
pc
=
0
;
long
tout
=
(
long
)
timeout
;
rc
=
zmq_poll
(
pitem
,
ls
,
tout
);
int
err
=
0
;
const
char
*
msg
=
""
;
if
(
rc
<
0
)
{
err
=
errno
;
msg
=
zmq_strerror
(
err
);
}
}
// Set 0MQ results.
if
(
ls_0mq
>
0
)
{
jshort
*
r_0mq
=
env
->
GetShortArrayElements
(
revent_0mq
,
0
);
if
(
r_0mq
)
{
for
(
int
i
=
0
;
i
<
ls_0mq
;
++
i
)
{
r_0mq
[
i
]
=
pitem
[
pc
].
revents
;
++
pc
;
}
env
->
ReleaseShortArrayElements
(
revent_0mq
,
r_0mq
,
0
);
}
}
delete
[]
pitem
;
return
rc
;
}
/**
* Get the value of socketHandle for the specified Java Socket.
*/
static
void
*
fetch_socket
(
JNIEnv
*
env
,
jobject
socket
)
{
static
jmethodID
get_socket_handle_mid
=
NULL
;
if
(
get_socket_handle_mid
==
NULL
)
{
jclass
cls
=
env
->
GetObjectClass
(
socket
);
assert
(
cls
);
get_socket_handle_mid
=
env
->
GetMethodID
(
cls
,
"getSocketHandle"
,
"()J"
);
env
->
DeleteLocalRef
(
cls
);
assert
(
get_socket_handle_mid
);
}
void
*
s
=
(
void
*
)
env
->
CallLongMethod
(
socket
,
get_socket_handle_mid
);
if
(
env
->
ExceptionCheck
())
{
s
=
NULL
;
}
assert
(
s
);
return
s
;
}
bindings/java/Makefile.am
View file @
deda7ca5
...
...
@@ -12,15 +12,18 @@ jar_DATA = $(jarfile)
dist_noinst_JAVA
=
\
org/zmq/Context.java
\
org/zmq/Socket.java
org/zmq/Socket.java
\
org/zmq/Poller.java
lib_LTLIBRARIES
=
libjzmq.la
libjzmq_la_SOURCES
=
\
Context.cpp
\
Socket.cpp
Socket.cpp
\
Poller.cpp
nodist_libjzmq_la_SOURCES
=
\
org_zmq_Context.h
\
org_zmq_Socket.h
org_zmq_Socket.h
\
org_zmq_Poller.h
libjzmq_la_CXXFLAGS
=
@JAVA_INCLUDE@
-I
$(top_srcdir)
/bindings/c
-Wall
libjzmq_la_LDFLAGS
=
-version-info
@JLTVER@
...
...
@@ -30,13 +33,17 @@ BUILT_SOURCES = \
org/zmq/Context.class
\
org_zmq_Context.h
\
org/zmq/Socket.class
\
org_zmq_Socket.h
org_zmq_Socket.h
\
org/zmq/Poller.class
\
org_zmq_Poller.h
CLEANFILES
=
\
org/zmq/Context.class
\
org_zmq_Context.h
\
org/zmq/Socket.class
\
org_zmq_Socket.h
\
org/zmq/Poller.class
\
org_zmq_Poller.h
\
Zmq.jar
$(srcdir)/Context.cpp
:
org_zmq_Context.h
...
...
@@ -53,6 +60,13 @@ org_zmq_Socket.h: org/zmq/Socket.class
./org/zmq/Socket.class
:
classdist_noinst.stamp
$(srcdir)/Poller.cpp
:
org_zmq_Poller.h
org_zmq_Poller.h
:
org/zmq/Poller.class
$(CLASSPATH_ENV)
$(JAVAH)
-jni
-classpath
.
org.zmq.Poller
./org/zmq/Poller.class
:
classdist_noinst.stamp
dist-hook
:
-
rm
$(distdir)
/
*
.h
bindings/java/org/zmq/Context.java
100644 → 100755
View file @
deda7ca5
...
...
@@ -26,10 +26,6 @@ public class Context {
public
static
final
int
POLL
=
1
;
public
static
final
int
POLLIN
=
1
;
public
static
final
int
POLLOUT
=
2
;
public
static
final
int
POLLERR
=
4
;
/**
* Class constructor.
*
...
...
@@ -40,20 +36,6 @@ public class Context {
construct
(
appThreads
,
ioThreads
,
flags
);
}
/**
* Issue a poll call on the specified 0MQ sockets.
* This function is experimental and may change in the future.
*
* @param socket an array of 0MQ Socket objects to poll.
* @param event an array of short values specifying what to poll for.
* @param revent an array of short values with the results.
* @param timeout the maximum timeout in microseconds.
*/
public
native
long
poll
(
Socket
[]
socket
,
short
[]
event
,
short
[]
revent
,
long
timeout
);
/** Initialize the JNI interface */
protected
native
void
construct
(
int
appThreads
,
int
ioThreads
,
int
flags
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment