Update of /cvsroot/beepcore-java/beepcore-java/src/org/beepcore/beep/core
In directory usw-pr-cvs1:/tmp/cvs-serv30231/src/org/beepcore/beep/core
Modified Files:
Channel.java OutputDataStream.java
Log Message:
Changed to allow adding data to OutputDataStream after the message has been queued for sending.
Index: Channel.java
===================================================================
RCS file: /cvsroot/beepcore-java/beepcore-java/src/org/beepcore/beep/core/Channel.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -r1.25 -r1.26
*** Channel.java 20 Aug 2002 03:08:58 -0000 1.25
--- Channel.java 2 Sep 2002 13:44:39 -0000 1.26
***************
*** 845,852 ****
pendingSendMessages.add(status);
}
sendQueuedMessages();
}
! private synchronized void sendQueuedMessages() throws BEEPException
{
while (true) {
--- 845,853 ----
pendingSendMessages.add(status);
}
+ status.getMessageData().setChannel(this);
sendQueuedMessages();
}
! synchronized void sendQueuedMessages() throws BEEPException
{
while (true) {
Index: OutputDataStream.java
===================================================================
RCS file: /cvsroot/beepcore-java/beepcore-java/src/org/beepcore/beep/core/OutputDataStream.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** OutputDataStream.java 28 May 2002 02:23:37 -0000 1.3
--- OutputDataStream.java 2 Sep 2002 13:44:42 -0000 1.4
***************
*** 69,72 ****
--- 69,78 ----
public void add(BufferSegment segment) {
this.buffers.addLast(segment);
+ if (channel != null) {
+ try {
+ channel.sendQueuedMessages();
+ } catch (BEEPException e) {
+ }
+ }
}
***************
*** 89,92 ****
--- 95,104 ----
public void setComplete() {
this.complete = true;
+ if (channel != null) {
+ try {
+ channel.sendQueuedMessages();
+ } catch (BEEPException e) {
+ }
+ }
}
***************
*** 123,126 ****
--- 135,142 ----
return b;
}
+
+ void setChannel(Channel channel) {
+ this.channel = channel;
+ }
protected final MimeHeaders mimeHeaders;
***************
*** 130,132 ****
--- 146,149 ----
private boolean headersSent = false;
private int curOffset = 0;
+ private Channel channel = null;
}
|