You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Leif Hedstrom <zw...@apache.org> on 2020/09/02 16:28:47 UTC

Re: [E] TS API Review: New HTTP/2 stream id and priority getters


> On Sep 1, 2020, at 3:11 PM, Alan Carroll <so...@verizonmedia.com.INVALID> wrote:
> 
> Sorry for chiming in late -
> 
> Note this is extremely similar to IP addresses and I recommend we use the
> same solution. That is, there is a class HttpPriority which has just a
> type/style/family value and possibly a length. This is an abstract class
> like sockaddr (which no one actually instantiates). The family indicates
> the concrete type, which is something like Http2Priority or Http3Priority,
> etc., just like sockaddr_in and sockaddr_in6. When you call the priority
> getter, it returns a HttpPriority* which is a pointer to a concrete
> instance, the type of which is determined by the family. Again, just like
> getting an IP address from a socket.


I assume with class here, you mean a regular C struct ?

— Leif



Re: [E] TS API Review: New HTTP/2 stream id and priority getters

Posted by Brian Neradt <br...@gmail.com>.
Considering this input:

   - I changed the TSHttpTxnClientStreamIdGet to return a uint64_t.
   - I removed 0_9 from the protocol type list and added
   HTTP_PROTOCOL_TYPE_HTTP_UNSPECIFIED.
   - I renamed TSHttpProtocolType to TSHttpPriorityType.

The API functions now look like:

tsapi TSReturnCode TSHttpTxnClientStreamIdGet(TSHttpTxn txnp, uint64_t
*stream_id);
tsapi TSReturnCode TSHttpTxnClientStreamPriorityGet(TSHttpTxn txnp,
TSHttpPriority *priority);

The draft PR is updated with these changes:
https://github.com/apache/trafficserver/pull/7149

Thanks,

On Wed, Sep 2, 2020 at 12:37 PM Brian Neradt <br...@gmail.com> wrote:

> Correct, a regular C struct.
>
> On Wed, Sep 2, 2020 at 11:28 AM Leif Hedstrom <zw...@apache.org> wrote:
>
>>
>>
>> > On Sep 1, 2020, at 3:11 PM, Alan Carroll
>> <so...@verizonmedia.com.INVALID> wrote:
>> >
>> > Sorry for chiming in late -
>> >
>> > Note this is extremely similar to IP addresses and I recommend we use
>> the
>> > same solution. That is, there is a class HttpPriority which has just a
>> > type/style/family value and possibly a length. This is an abstract class
>> > like sockaddr (which no one actually instantiates). The family indicates
>> > the concrete type, which is something like Http2Priority or
>> Http3Priority,
>> > etc., just like sockaddr_in and sockaddr_in6. When you call the priority
>> > getter, it returns a HttpPriority* which is a pointer to a concrete
>> > instance, the type of which is determined by the family. Again, just
>> like
>> > getting an IP address from a socket.
>>
>>
>> I assume with class here, you mean a regular C struct ?
>>
>> — Leif
>>
>>
>>
>
> --
> "Come to Me, all who are weary and heavy-laden, and I will
> give you rest. Take My yoke upon you and learn from Me, for
> I am gentle and humble in heart, and you will find rest for
> your souls. For My yoke is easy and My burden is light."
>
>     ~ Matthew 11:28-30
>


-- 
"Come to Me, all who are weary and heavy-laden, and I will
give you rest. Take My yoke upon you and learn from Me, for
I am gentle and humble in heart, and you will find rest for
your souls. For My yoke is easy and My burden is light."

    ~ Matthew 11:28-30

Re: [E] TS API Review: New HTTP/2 stream id and priority getters

Posted by Brian Neradt <br...@gmail.com>.
Correct, a regular C struct.

On Wed, Sep 2, 2020 at 11:28 AM Leif Hedstrom <zw...@apache.org> wrote:

>
>
> > On Sep 1, 2020, at 3:11 PM, Alan Carroll
> <so...@verizonmedia.com.INVALID> wrote:
> >
> > Sorry for chiming in late -
> >
> > Note this is extremely similar to IP addresses and I recommend we use the
> > same solution. That is, there is a class HttpPriority which has just a
> > type/style/family value and possibly a length. This is an abstract class
> > like sockaddr (which no one actually instantiates). The family indicates
> > the concrete type, which is something like Http2Priority or
> Http3Priority,
> > etc., just like sockaddr_in and sockaddr_in6. When you call the priority
> > getter, it returns a HttpPriority* which is a pointer to a concrete
> > instance, the type of which is determined by the family. Again, just like
> > getting an IP address from a socket.
>
>
> I assume with class here, you mean a regular C struct ?
>
> — Leif
>
>
>

-- 
"Come to Me, all who are weary and heavy-laden, and I will
give you rest. Take My yoke upon you and learn from Me, for
I am gentle and humble in heart, and you will find rest for
your souls. For My yoke is easy and My burden is light."

    ~ Matthew 11:28-30