I have the following task I need to implement.
1. I have a queue of NSData objects, usually representing a continuous stream, but delivered in variable-sized chunks. However some chunks could be missing, but the queue represents the correct order of the stream that was delivered, and the missing chunks can be flagged. 2. The data in the stream consists of packets of fixed length. I need to extract the packets and pass them as complete single entities to another object (a delegate) for further processing. All complete packets must be extractable, and I’d like to do this on a secondary thread if possible. 3. Due to the possibility of missing data chunks, resynchronisation for each new data may be required. I can detect when a data entry is contiguous with the previous one, or when one or more chunks has been skipped. A packet may be split across input data, or may be incomplete due to being split across data where the second part was missing. 4. Packet detection is based on a signature byte at the start of each packet, and the fixed length of the packet which is a few hundred bytes. If five consecutive packets are detected having the same signature byte, the packets are presumed to have been detected and can be extracted for processing. The object that handles this should accept NSData chunks as input and queue them, or if there is a missing chunk, a nil data object. The object’s delegate should be passed the extracted packets one at a time in order as they become available, again as NSData objects. No time synchronization between the input and output is required. This sort of processing isn’t really my strong point, so while I can think of various ways to solve it by brute force and ignorance, I would have thought this is something that would be recognisable as a standard sort of stream processing algorithm by those who’ve done it before. Even just an outline or pointer to something like this would be a help. —Graham _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com