[ https://issues.apache.org/jira/browse/TS-4523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Ben Zakai updated TS-4523: -------------------------------- Description: 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: Write data to file (up to a certain amount) File analysis 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*/ Thank you! was: I'd like to suggest an API change in the transformation plugin which will enable us to pause/resume a transformation. My own use case is that I'd like to write all the incoming data into a file (for analysis) before producing it downstream, but I don't want the file to reach a certain size limit (When content-length is present its not an issue of course). Basically what I'm trying to achieve: -Write all data to file -File analysis -Produce file data 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. > Add the ability to pause/resume data consumption in the CPP API > --------------------------------------------------------------- > > Key: TS-4523 > URL: https://issues.apache.org/jira/browse/TS-4523 > Project: Traffic Server > Issue Type: Improvement > Components: Plugins > Reporter: David Ben Zakai > Assignee: Uri Shachar > Fix For: 7.0.0 > > > 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: > Write data to file (up to a certain amount) > File analysis > 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*/ > Thank you! -- This message was sent by Atlassian JIRA (v6.3.4#6332)