[ 
https://issues.apache.org/jira/browse/TS-795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13040659#comment-13040659
 ] 

Leif Hedstrom commented on TS-795:
----------------------------------

It's probably questionable too if all these buffer sizes needs to be int64_t as 
well. I'm not 100% certain why that was done, but cleanup here is in order.

> Clean up definitions and usage of buffer size indexes vs buffer sizes
> ---------------------------------------------------------------------
>
>                 Key: TS-795
>                 URL: https://issues.apache.org/jira/browse/TS-795
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Leif Hedstrom
>             Fix For: 3.1.0
>
>
> Right now, we have a set of defines, and APIs, which can take either a 
> "index" to a size (used e.g. for an allocator index), or a real size. Both of 
> these are currently int64_t in all APIs and member variables, and in the 
> implementations, the usage are sometimes overloaded (i.e. we do "size" 
> calculations on top of the indexes, making for real confusing code).
> There's also a lack of proper identification of what is an "size index" type 
> (or parameter), and what is a "size". This makes for risky code.
> I think we should clean up all the implementations and APIs, as follow
> 1) Make proper names of all APIs and macros, clearly indicating if it's 
> working on a size index or a size.
> 2) Keep only the size types, parameters and macros using int64_t. Do not 
> overload "real" size over the size indexes.
> 3) We either make the size indexes an "int" (or even a short), or perhaps 
> even better an enum (like below). All APIs, parameters, and member variables 
> that refer to such size indexes would use this appropriate type.
> {code}
> enum BufferSizeIndex {
>   BUFFER_SIZE_INDEX_128 = 0,
>   BUFFER_SIZE_INDEX_256,       /*  1 */
>   BUFFER_SIZE_INDEX_512,       /*  2 */
>   BUFFER_SIZE_INDEX_1K,        /*  3 */
>   BUFFER_SIZE_INDEX_2K,        /*  4 */
>   BUFFER_SIZE_INDEX_4K,        /*  5 */
>   BUFFER_SIZE_INDEX_8K,        /*  6 */
>   BUFFER_SIZE_INDEX_16K,       /*  7 */
>   BUFFER_SIZE_INDEX_32K,       /*  8 */
>   BUFFER_SIZE_INDEX_64K,       /*  9 */
>   BUFFER_SIZE_INDEX_128K,      /* 10 */
>   BUFFER_SIZE_INDEX_256K,      /* 11 */
>   BUFFER_SIZE_INDEX_512K,      /* 12 */
>   BUFFER_SIZE_INDEX_1M,        /* 13 */
>   BUFFER_SIZE_INDEX_2M,        /* 14 */
>   /* These have special semantics */
>   BUFFER_SIZE_NOT_ALLOCATED,
> };
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to