The thing I'm missing about this, why can't you just keep buffering to the same file while you're doing analysis? I don't see why you need to pause anything?
Brian On Friday, June 17, 2016, David Ben Zakai <david.benza...@gmail.com> wrote: > Hi all, > > I'd like to suggest an API change in the CPP API Transformation interface. > > My own use case is that I'd like to be able to pause the transformation, > handle what I can from the file and release the buffered content before > resuming and releasing the rest of the data. > Basically what I'm trying to achieve: > > 1. Write data to file (up to a certain amount) > 2. File analysis > 3. Produce file data (and any leftovers) downstream > > When the file size reaches a certain size limit I'd like to be able to > pause the transformation and produce all of its content downstream and then > resume the transformation. > > API Changes: > TransformationPlugin.h: > /** > * Call this method if you wish to pause the transformation. > * Schedule the return value continuation to resume the transforamtion. > * If the continuation is scheduled and called after the transform is > destroyed it will > * won't do anything beyond cleanups. > * Note: You must schedule the continuation or destroy it (using > TSContDestroy) yourself, > * otherwise it will leak. > */ > TSCont pause(); > > Internally, the continuation wraps the "resumeCallback" static function: > static int resumeCallback(TSCont cont, TSEvent event, void *edata); /** > Resume callback*/ > > You can view my jira issue here > <https://issues.apache.org/jira/browse/TS-4523> > You can view my pull request here > <https://github.com/apache/trafficserver/pull/712>. > > Thank you! >