On Thursday 27 August 2009 16:50:48 Michael Yip wrote:
> Hi Matt,
>
> Problem is that (line = buffIns.readLine()) == null does not terminate
> the loop. Since most messages ends with EndMessage, how do I know how
> many more to read before I break the loop??
A message ends with "EndMessage" or "Data", or something on a line with no = in
it. All lines within a message include an "=". The first line, the message
type, doesn't include an "=". That should be enough information to separate and
parse messages, no?
>
> Thanks,
>
> Michael
>
> Matthew Toseland wrote:
> > On Thursday 27 August 2009 13:00:41 bbackde at googlemail.com wrote:
> >
> >> You should process the messages in a Thread. Put your code into a Thread
> >> that calls handler methods when a specific message arrived.
> >> The Thread runs forever and receives all messages and all data...
> >>
> >
> > All you need to do is parse each message. The type of the message is the
> > first line, it ends at the last line, unless it has trailing data. You can
> > do this level of parsing without understanding the message. Then you can
> > ignore it if you don't understand it, or you can handle it appropriately.
> >
> >> On Thu, Aug 27, 2009 at 03:22, Michael Yip<mhy831 at cs.bham.ac.uk> wrote:
> >>
> >>> Hi guys,
> >>>
> >>> Does anyone know how to know when I've read all the PersistentPut and
> >>> PersistentGet messages at the start? There's no way of knowing how many
> >>> there are and I have no idea how to know when to stop reading? Below is
> >>> the code I've written:
> >>>
> >>> String line;
> >>> while((line = buffIns.readLine()) != null){
> >>> System.out.println(line);
> >>> _Logger.log(line);
> >>> //Capture ConnectionIdentifer to be used as salt for file
> >>> insertions
> >>> if(line.contains("ConnectionIdentifier")){
> >>> helloID = line.substring(line.indexOf('=') + 1,
> >>> line.length());
> >>> }
> >>> if(line.equals("EndMessage")){
> >>> //Read an extra line to see if there are more to read
> >>> //Read all persistent puts and gets
> >>> line = buffIns.readLine();
> >>> if(line.contains("Get") || line.contains("Put") ||
> >>> line.contains("URI") ||line.contains("Get") || line.contains("Data")
> >>> ||line.contains("Started") || line.contains("Finished")||
> >>> line.contains("Simple")){
> >>> System.out.println(line);
> >>> _Logger.log(line);
> >>> }else{
> >>> return true;
> >>> }
> >>> }
> >>> }
> >>>
> >>> but obviously the reader doesn't know when to stop and so line is never
> >>> null?
> >>>
> >>> Thanks,
> >>>
> >>> Michael
> >>>
> >>> ------------------------------------------------------------------------
> >>>
> >>> _______________________________________________
> >>> Devl mailing list
> >>> Devl at freenetproject.org
> >>> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
>
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 835 bytes
Desc: This is a digitally signed message part.
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20090827/78b76bd0/attachment.pgp>