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>

Reply via email to