trafficserver-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yunkai Zhang <yunkai...@gmail.com>
Subject Re: [API REVIEW] TSClientProtoStackCreate
Date Fri, 04 Apr 2014 09:13:34 GMT
Good to me.


On Fri, Apr 4, 2014 at 6:02 AM, James Peach <jpeach@apache.org> wrote:

> Hi all,
>
> This is a proposal for a new API to abstract the construction of the
> TSClientProtoStack. Currently, plugin authors are expected to construct
> TSClientProtoStack values by bitshifting them into their correct locations.
> This is tedious likely to be error-prone.
>
> https://issues.apache.org/jira/browse/TS-2699
>
> The following function will be added:
>
>         TSClientProtoStack TSClientProtoStackCreate(TSProtoType, ...)
>
> The TS_PROTO_MAX will be removed and replaced with TS_PROTO_NULL, whose
> value will be 32. Since TS_PROTO_MAX is the last value in the TSProtoType
> enumeration, it's value will change when we add new TSProtoType values,
> causing each new addition to be an ABI breakage. TS_PROTO_NULL solves this
> issue.
>
> TSClientProtoStackCreate() accepts a sequence of TSProtoType values,
> terminated by a TS_PROTO_NULL. It combines the values and returns a
> TSClientProtoStack value that describes the protocol layering of a client
> request.
>
> diff --git a/lib/ts/apidefs.h.in b/lib/ts/apidefs.h.in
> index ffd8cbb..487c25e 100644
> --- a/lib/ts/apidefs.h.in
> +++ b/lib/ts/apidefs.h.in
> @@ -118,8 +118,8 @@ extern "C"
>    TS_PROTO_RTMP = 14,
>    TS_PROTO_WBSK = 15, /* WebSocket */
>
> -    /* MAX value of TSProtoType  */
> -    TS_PROTO_MAX
> +    /* Sentinel value  */
> +    TS_PROTO_NULL = 32
>  } TSProtoType;
>
>  typedef uint32_t TSClientProtoStack;
> diff --git a/proxy/api/ts/ts.h b/proxy/api/ts/ts.h
> index 367317b..6139fb4 100644
> --- a/proxy/api/ts/ts.h
> +++ b/proxy/api/ts/ts.h
> @@ -1577,6 +1577,9 @@ extern "C"
>
>  /*
> --------------------------------------------------------------------------
>     Initiate Http Connection */
> +
> +  tsapi TSClientProtoStack TSClientProtoStackCreate(TSProtoType, ...);
> +
>  /**
>      Allows the plugin to initiate an http connection. The TSVConn the
>      plugin receives as the result of successful operates identically to
>



-- 
Yunkai Zhang
Work at Taobao

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message