That's enough to read and terminate reading of one message. However, how do I know when is the last message so I can stop reading from the stream?
For example, a PersistentPut message came in..so I parse until EndMesssage line. However, there could be yet more PersistentPut/Get messages. Therefore, I'm just wondering how do I break out of the loop after the last of these messages. Matthew Toseland wrote: > 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 [email protected] 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<[email protected]> 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 >>>>> [email protected] >>>>> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl >>>>> >> _______________________________________________ >> Devl mailing list >> [email protected] >> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl >> >> >> > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Devl mailing list > [email protected] > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl _______________________________________________ Devl mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
