[ 
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)

Reply via email to