Here is what we do know:
The JNI is defined as two parts. The Java code and the
C code in the client (comm_native.c). The Java code
calls the C code, the C code calls the necessary
functions inside the client. I hope to show that:
- the Java code and C code parts of the
JNI are, in fact, working.
- The problems (as listed by Nick below) are
all a result of client problems
If I can prove these two things, then I have shown the
need for the help of people outside of our group (since
the scope of Class View is the JNI and *not* the client
code).
Is the Java code working? Yes. The Java code compiles,
and when the Java code is run we see that (by using
printf statements) it is indeed calling the appropriate
functions in comm_native.c
Is comm_native.c working? Yes. Here is an example of
the function that creates an agent in comm_native.c:
if(!comm_CreateAgent(comm, 0))
printf("Unable to create agent...\n");
else
printf("Got back from creating agent successfully...\n");
while(def == 0)
while(comm_HandleEvent(comm));
}
def = 0;
return(agent_id);
Notice there is really only two things going on here.
First we call comm_CreateAgent (which is a function in
the client and not the JNI). Second we call
comm_HandleEvent (which is same as before).
Yeah, but is this code really working? Yes. When
comm_native creates an agent, the server acknowledges
the creation of the agent.
Since the Java code works and the comm_native's only
job is to call other functions in the client, the only
possible explanation for the problems are:
- We are calling the client functions incorrectly in
comm_native
- The client code is buggy
If situation 1 is true, then that would be pointed out
by someone outside of the group (with some expertise in
the client) very quickly (I would assume, anyways). If
situation 2 is true, then we need to work with the
group, whose responsibility it is to govern the client
code, to fix those problems in an efficient manner.
Either way, the Class View group is at an impasse that
cannot be resolved until someone from the client
group(?) spends some quality time with us.
But Ryan, if you've known about this then why haven't
you contacted other groups about it? Well, you guys
should have attended last week's meeting when I asked
for "quality time" from the networking people.
They recommended that I talk to Kevin, since the two
networking people know nothing about the NT code.
Kevin has been sick lately (and wasn't at the meeting)
I sent him an email requesting help. I have gotten no
reply. On Monday I sent out another email to Kevin and
one to Stephen. I have spoken with Stephen, since then;
he is too busy working to look at it now and NT is not
his expertise, but will notify me if he finds out
anything while porting the client to Solaris. I have
gotten no replies as of yet. (I also sent joel the info
yesterday)
It is my belief that knowledge of the NT code is not a
prerequisite to understanding the client.