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

Alan M. Carroll commented on TS-680:
------------------------------------

To pick a personal nit, non-member names starting with underscore are reserved 
for the implementation, so 'struct _tsmloc' is illegal. Unfortunately, because 
the API must be C compatible we can't use a namespace.

Beyond being a lot of work for the TS team, it shouldn't have any negative 
impact on plugin developers as all of the API types affected are opaque. 
Overall it seems like a net positive.

> Make SDK opaque types use opaque struct's instead of void* ?
> ------------------------------------------------------------
>
>                 Key: TS-680
>                 URL: https://issues.apache.org/jira/browse/TS-680
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: TS API
>            Reporter: Leif Hedstrom
>            Assignee: Leif Hedstrom
>             Fix For: 2.1.7
>
>         Attachments: prototypes.diff
>
>
> This could allow a compiler to warn on inappropriate parameters for example.
> The problem is that many API parameters are passed as (void*). This means 
> that not only can they can unsafely interchanged (either passing the wrong 
> parameter or passing them in the wrong order) but completely inappropriate 
> (non-API) pointers can be passed as well, all without any warning from the 
> compiler.
> This could be improved by declaring parameter types to be pointers to in name 
> only types. This would make them non-trivially interchangeable with each 
> other and non-API pointers. Although passing inappropriate parameters would 
> still be possible it would be *much* harder to do by accident, in contrast to 
> the current API in which it is very easy to do.

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

        

Reply via email to