This is an automated email from the ASF dual-hosted git repository.

acanary pushed a commit to branch h1outbound
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/h1outbound by this push:
     new 81576ff  ProxySession cleanup: moving inline functions to .h
81576ff is described below

commit 81576ff92cea5295cb3ca71b7c216460135b22c7
Author: Aaron Canary <acan...@oath.com>
AuthorDate: Wed Sep 4 14:36:37 2019 -0500

    ProxySession cleanup: moving inline functions to .h
    
    moving non-virtual, one-liner functions to the .h with "inline" keyword.
---
 proxy/ProxySession.cc             |  84 ------------------------------
 proxy/ProxySession.h              |  86 +++++++++++++++++++++++++++++++
 proxy/ProxyTransaction.cc         |  94 ----------------------------------
 proxy/ProxyTransaction.h          | 104 +++++++++++++++++++++++++++++++++++---
 proxy/http/Http1ServerSession.cc  |   6 ---
 proxy/http/Http1ServerSession.h   |  12 ++++-
 proxy/http/Http1Transaction.cc    |   6 ---
 proxy/http/Http1Transaction.h     |   9 ++++
 proxy/http2/Http2ClientSession.cc |  48 ------------------
 proxy/http2/Http2ClientSession.h  |  51 +++++++++++++++++++
 proxy/http2/Http2Stream.cc        |  99 ------------------------------------
 proxy/http2/Http2Stream.h         | 103 +++++++++++++++++++++++++++++++++++++
 12 files changed, 358 insertions(+), 344 deletions(-)

diff --git a/proxy/ProxySession.cc b/proxy/ProxySession.cc
index af7c30e..d3b7eb4 100644
--- a/proxy/ProxySession.cc
+++ b/proxy/ProxySession.cc
@@ -25,8 +25,6 @@
 #include "HttpDebugNames.h"
 #include "ProxySession.h"
 
-static int64_t next_cs_id = 0;
-
 ProxySession::ProxySession() : VConnection(nullptr)
 {
   ink_zero(this->user_args);
@@ -50,12 +48,6 @@ ProxySession::clear_session_active()
   }
 }
 
-int64_t
-ProxySession::next_connection_id()
-{
-  return ink_atomic_increment(&next_cs_id, 1);
-}
-
 static const TSEvent eventmap[TS_HTTP_LAST_HOOK + 1] = {
   TS_EVENT_HTTP_READ_REQUEST_HDR,      // TS_HTTP_READ_REQUEST_HDR_HOOK
   TS_EVENT_HTTP_OS_DNS,                // TS_HTTP_OS_DNS_HOOK
@@ -182,46 +174,6 @@ ProxySession::handle_api_return(int event)
   }
 }
 
-void *
-
-ProxySession::get_user_arg(unsigned ix) const
-{
-  ink_assert(ix < countof(user_args));
-  return this->user_args[ix];
-}
-
-void
-ProxySession::set_user_arg(unsigned ix, void *arg)
-{
-  ink_assert(ix < countof(user_args));
-  user_args[ix] = arg;
-}
-
-void
-ProxySession::set_debug(bool flag)
-{
-  debug_on = flag;
-}
-
-// Return whether debugging is enabled for this session.
-bool
-ProxySession::debug() const
-{
-  return this->debug_on;
-}
-
-bool
-ProxySession::is_active() const
-{
-  return m_active;
-}
-
-bool
-ProxySession::is_draining() const
-{
-  return TSSystemState::is_draining();
-}
-
 bool
 ProxySession::is_chunked_encoding_supported() const
 {
@@ -257,12 +209,6 @@ ProxySession::get_server_session() const
   return nullptr;
 }
 
-TSHttpHookID
-ProxySession::get_hookid() const
-{
-  return hook_state.id();
-}
-
 void
 ProxySession::set_active_timeout(ink_hrtime timeout_in)
 {
@@ -278,12 +224,6 @@ ProxySession::cancel_inactivity_timeout()
 {
 }
 
-bool
-ProxySession::is_client_closed() const
-{
-  return get_netvc() == nullptr;
-}
-
 int
 ProxySession::populate_protocol(std::string_view *result, int size) const
 {
@@ -310,27 +250,3 @@ ProxySession::get_local_addr()
   NetVConnection *netvc = get_netvc();
   return netvc ? netvc->get_local_addr() : nullptr;
 }
-
-void
-ProxySession::hook_add(TSHttpHookID id, INKContInternal *cont)
-{
-  this->api_hooks.append(id, cont);
-}
-
-APIHook *
-ProxySession::hook_get(TSHttpHookID id) const
-{
-  return this->api_hooks.get(id);
-}
-
-HttpAPIHooks const *
-ProxySession::feature_hooks() const
-{
-  return &api_hooks;
-}
-
-bool
-ProxySession::has_hooks() const
-{
-  return this->api_hooks.has_hooks() || http_global_hooks->has_hooks();
-}
diff --git a/proxy/ProxySession.h b/proxy/ProxySession.h
index c5c6630..f1036ee 100644
--- a/proxy/ProxySession.h
+++ b/proxy/ProxySession.h
@@ -186,3 +186,89 @@ private:
   // aborts.
   bool m_active = false;
 };
+
+///////////////////
+// INLINE
+
+static inline int64_t next_cs_id = 0;
+
+inline int64_t
+ProxySession::next_connection_id()
+{
+  return ink_atomic_increment(&next_cs_id, 1);
+}
+
+inline void *
+ProxySession::get_user_arg(unsigned ix) const
+{
+  ink_assert(ix < countof(user_args));
+  return this->user_args[ix];
+}
+
+inline void
+ProxySession::set_user_arg(unsigned ix, void *arg)
+{
+  ink_assert(ix < countof(user_args));
+  user_args[ix] = arg;
+}
+
+inline void
+ProxySession::set_debug(bool flag)
+{
+  debug_on = flag;
+}
+
+// Return whether debugging is enabled for this session.
+inline bool
+ProxySession::debug() const
+{
+  return this->debug_on;
+}
+
+inline bool
+ProxySession::is_active() const
+{
+  return m_active;
+}
+
+inline bool
+ProxySession::is_draining() const
+{
+  return TSSystemState::is_draining();
+}
+
+inline bool
+ProxySession::is_client_closed() const
+{
+  return get_netvc() == nullptr;
+}
+
+inline TSHttpHookID
+ProxySession::get_hookid() const
+{
+  return hook_state.id();
+}
+
+inline void
+ProxySession::hook_add(TSHttpHookID id, INKContInternal *cont)
+{
+  this->api_hooks.append(id, cont);
+}
+
+inline APIHook *
+ProxySession::hook_get(TSHttpHookID id) const
+{
+  return this->api_hooks.get(id);
+}
+
+inline HttpAPIHooks const *
+ProxySession::feature_hooks() const
+{
+  return &api_hooks;
+}
+
+inline bool
+ProxySession::has_hooks() const
+{
+  return this->api_hooks.has_hooks() || http_global_hooks->has_hooks();
+}
diff --git a/proxy/ProxyTransaction.cc b/proxy/ProxyTransaction.cc
index 47099a9..6cce239 100644
--- a/proxy/ProxyTransaction.cc
+++ b/proxy/ProxyTransaction.cc
@@ -124,58 +124,6 @@ ProxyTransaction::is_first_transaction() const
 {
   return _proxy_ssn->get_transact_count() == 1;
 }
-// Ask your session if this is allowed
-bool
-ProxyTransaction::is_transparent_passthrough_allowed()
-{
-  return upstream_outbound_options.f_transparent_passthrough;
-}
-
-bool
-ProxyTransaction::is_chunked_encoding_supported() const
-{
-  return _proxy_ssn ? _proxy_ssn->is_chunked_encoding_supported() : false;
-}
-
-void
-ProxyTransaction::set_half_close_flag(bool flag)
-{
-  if (_proxy_ssn) {
-    _proxy_ssn->set_half_close_flag(flag);
-  }
-}
-
-bool
-ProxyTransaction::get_half_close_flag() const
-{
-  return _proxy_ssn ? _proxy_ssn->get_half_close_flag() : false;
-}
-
-// What are the debug and hooks_enabled used for?  How are they set?
-// Just calling through to proxy session for now
-bool
-ProxyTransaction::debug() const
-{
-  return _proxy_ssn ? _proxy_ssn->debug() : false;
-}
-
-APIHook *
-ProxyTransaction::hook_get(TSHttpHookID id) const
-{
-  return _proxy_ssn ? _proxy_ssn->hook_get(id) : nullptr;
-}
-
-HttpAPIHooks const *
-ProxyTransaction::feature_hooks() const
-{
-  return _proxy_ssn ? _proxy_ssn->feature_hooks() : nullptr;
-}
-
-bool
-ProxyTransaction::has_hooks() const
-{
-  return _proxy_ssn->has_hooks();
-}
 
 void
 ProxyTransaction::set_session_active()
@@ -247,49 +195,7 @@ ProxyTransaction::set_outbound_transparent(bool flag)
   upstream_outbound_options.f_outbound_transparent = flag;
 }
 
-ProxySession *
-ProxyTransaction::get_proxy_ssn()
-{
-  return _proxy_ssn;
-}
-
-void
-ProxyTransaction::set_proxy_ssn(ProxySession *new_proxy_ssn)
-{
-  _proxy_ssn = new_proxy_ssn;
-}
-
 void
 ProxyTransaction::set_h2c_upgrade_flag()
 {
 }
-
-Http1ServerSession *
-ProxyTransaction::get_server_session() const
-{
-  return _proxy_ssn ? _proxy_ssn->get_server_session() : nullptr;
-}
-
-HttpSM *
-ProxyTransaction::get_sm() const
-{
-  return _sm;
-}
-
-const char *
-ProxyTransaction::get_protocol_string()
-{
-  return _proxy_ssn ? _proxy_ssn->get_protocol_string() : nullptr;
-}
-
-int
-ProxyTransaction::populate_protocol(std::string_view *result, int size) const
-{
-  return _proxy_ssn ? _proxy_ssn->populate_protocol(result, size) : 0;
-}
-
-const char *
-ProxyTransaction::protocol_contains(std::string_view tag_prefix) const
-{
-  return _proxy_ssn ? _proxy_ssn->protocol_contains(tag_prefix) : nullptr;
-}
diff --git a/proxy/ProxyTransaction.h b/proxy/ProxyTransaction.h
index 47999df..085e604 100644
--- a/proxy/ProxyTransaction.h
+++ b/proxy/ProxyTransaction.h
@@ -73,14 +73,11 @@ public:
   virtual void set_proxy_ssn(ProxySession *set_proxy_ssn);
   virtual void set_h2c_upgrade_flag();
 
-  virtual const char *get_protocol_string();
-
-  virtual int populate_protocol(std::string_view *result, int size) const;
-
-  virtual const char *protocol_contains(std::string_view tag_prefix) const;
-
   /// Non-Virtual Methods
   //
+  const char *get_protocol_string();
+  int populate_protocol(std::string_view *result, int size) const;
+  const char *protocol_contains(std::string_view tag_prefix) const;
 
   /// Non-Virtual Accessors
   //
@@ -119,3 +116,98 @@ protected:
 
 private:
 };
+
+////////////////////////////////////////////////////////////
+// INLINE
+
+inline bool
+ProxyTransaction::is_transparent_passthrough_allowed()
+{
+  return upstream_outbound_options.f_transparent_passthrough;
+}
+inline bool
+ProxyTransaction::is_chunked_encoding_supported() const
+{
+  return _proxy_ssn ? _proxy_ssn->is_chunked_encoding_supported() : false;
+}
+inline void
+ProxyTransaction::set_half_close_flag(bool flag)
+{
+  if (_proxy_ssn) {
+    _proxy_ssn->set_half_close_flag(flag);
+  }
+}
+
+inline bool
+ProxyTransaction::get_half_close_flag() const
+{
+  return _proxy_ssn ? _proxy_ssn->get_half_close_flag() : false;
+}
+
+// What are the debug and hooks_enabled used for?  How are they set?
+// Just calling through to proxy session for now
+inline bool
+ProxyTransaction::debug() const
+{
+  return _proxy_ssn ? _proxy_ssn->debug() : false;
+}
+
+inline APIHook *
+ProxyTransaction::hook_get(TSHttpHookID id) const
+{
+  return _proxy_ssn ? _proxy_ssn->hook_get(id) : nullptr;
+}
+
+inline HttpAPIHooks const *
+ProxyTransaction::feature_hooks() const
+{
+  return _proxy_ssn ? _proxy_ssn->feature_hooks() : nullptr;
+}
+
+inline bool
+ProxyTransaction::has_hooks() const
+{
+  return _proxy_ssn->has_hooks();
+}
+
+inline ProxySession *
+ProxyTransaction::get_proxy_ssn()
+{
+  return _proxy_ssn;
+}
+
+inline void
+ProxyTransaction::set_proxy_ssn(ProxySession *new_proxy_ssn)
+{
+  _proxy_ssn = new_proxy_ssn;
+}
+
+inline Http1ServerSession *
+ProxyTransaction::get_server_session() const
+{
+  return _proxy_ssn ? _proxy_ssn->get_server_session() : nullptr;
+}
+
+inline HttpSM *
+ProxyTransaction::get_sm() const
+{
+  return _sm;
+}
+
+inline const char *
+ProxyTransaction::get_protocol_string()
+{
+  return _proxy_ssn ? _proxy_ssn->get_protocol_string() : nullptr;
+}
+
+inline int
+ProxyTransaction::populate_protocol(std::string_view *result, int size) const
+{
+  return _proxy_ssn ? _proxy_ssn->populate_protocol(result, size) : 0;
+}
+
+inline const char *
+ProxyTransaction::protocol_contains(std::string_view tag_prefix) const
+{
+  return _proxy_ssn ? _proxy_ssn->protocol_contains(tag_prefix) : nullptr;
+}
diff --git a/proxy/http/Http1ServerSession.cc b/proxy/http/Http1ServerSession.cc
index 4c244ad..9f20dc4 100644
--- a/proxy/http/Http1ServerSession.cc
+++ b/proxy/http/Http1ServerSession.cc
@@ -204,12 +204,6 @@ Http1ServerSession::release()
   }
 }
 
-IOBufferReader *
-Http1ServerSession::get_reader()
-{
-  return buf_reader;
-};
-
 NetVConnection *
 Http1ServerSession::get_netvc() const
 {
diff --git a/proxy/http/Http1ServerSession.h b/proxy/http/Http1ServerSession.h
index 9677e76..5aeb225 100644
--- a/proxy/http/Http1ServerSession.h
+++ b/proxy/http/Http1ServerSession.h
@@ -209,7 +209,8 @@ private:
 
 extern ClassAllocator<Http1ServerSession> httpServerSessionAllocator;
 
-// --- Implementation ---
+////////////////////////////////////////////
+// INLINE
 
 inline void
 Http1ServerSession::attach_hostname(const char *hostname)
@@ -219,6 +220,15 @@ Http1ServerSession::attach_hostname(const char *hostname)
   }
 }
 
+inline IOBufferReader *
+Http1ServerSession::get_reader()
+{
+  return buf_reader;
+};
+
+//
+// LINKAGE
+
 inline Http1ServerSession *&
 Http1ServerSession::IPLinkage::next_ptr(self_type *ssn)
 {
diff --git a/proxy/http/Http1Transaction.cc b/proxy/http/Http1Transaction.cc
index 73a161b..8a2790c 100644
--- a/proxy/http/Http1Transaction.cc
+++ b/proxy/http/Http1Transaction.cc
@@ -114,12 +114,6 @@ Http1Transaction::do_io_shutdown(ShutdownHowTo_t howto)
 }
 
 void
-Http1Transaction::set_reader(IOBufferReader *reader)
-{
-  _reader = reader;
-}
-
-void
 Http1Transaction::set_active_timeout(ink_hrtime timeout_in)
 {
   if (_proxy_ssn)
diff --git a/proxy/http/Http1Transaction.h b/proxy/http/Http1Transaction.h
index 3c3215d..407d73e 100644
--- a/proxy/http/Http1Transaction.h
+++ b/proxy/http/Http1Transaction.h
@@ -64,3 +64,12 @@ public:
 protected:
   bool outbound_transparent{false};
 };
+
+//////////////////////////////////
+// INLINE
+
+inline void
+Http1Transaction::set_reader(IOBufferReader *reader)
+{
+  _reader = reader;
+}
diff --git a/proxy/http2/Http2ClientSession.cc 
b/proxy/http2/Http2ClientSession.cc
index 3f75486..ed5069c 100644
--- a/proxy/http2/Http2ClientSession.cc
+++ b/proxy/http2/Http2ClientSession.cc
@@ -650,12 +650,6 @@ Http2ClientSession::_should_do_something_else()
   return (this->_n_frame_read & 0x7F) == 0;
 }
 
-bool
-Http2ClientSession::ready_to_free() const
-{
-  return kill_me;
-}
-
 NetVConnection *
 Http2ClientSession::get_netvc() const
 {
@@ -679,12 +673,6 @@ Http2ClientSession::write_reenable()
   write_vio->reenable();
 }
 
-const Http2UpgradeContext &
-Http2ClientSession::get_upgrade_context() const
-{
-  return upgrade_context;
-}
-
 int
 Http2ClientSession::get_transact_count() const
 {
@@ -696,24 +684,6 @@ Http2ClientSession::release(ProxyTransaction *trans)
 {
 }
 
-void
-Http2ClientSession::set_dying_event(int event)
-{
-  dying_event = event;
-}
-
-int
-Http2ClientSession::get_dying_event() const
-{
-  return dying_event;
-}
-
-bool
-Http2ClientSession::is_recursing() const
-{
-  return recursion > 0;
-}
-
 const char *
 Http2ClientSession::get_protocol_string() const
 {
@@ -746,18 +716,6 @@ Http2ClientSession::protocol_contains(std::string_view 
prefix) const
   return retval;
 }
 
-bool
-Http2ClientSession::get_half_close_local_flag() const
-{
-  return half_close_local;
-}
-
-bool
-Http2ClientSession::is_url_pushed(const char *url, int url_len)
-{
-  return h2_pushed_urls.find(url) != h2_pushed_urls.end();
-}
-
 void
 Http2ClientSession::add_url_to_pushed_table(const char *url, int url_len)
 {
@@ -765,9 +723,3 @@ Http2ClientSession::add_url_to_pushed_table(const char 
*url, int url_len)
     h2_pushed_urls.emplace(url);
   }
 }
-
-int64_t
-Http2ClientSession::write_buffer_size()
-{
-  return write_buffer->max_read_avail();
-}
diff --git a/proxy/http2/Http2ClientSession.h b/proxy/http2/Http2ClientSession.h
index 0bb9755..eee6a3b 100644
--- a/proxy/http2/Http2ClientSession.h
+++ b/proxy/http2/Http2ClientSession.h
@@ -267,3 +267,54 @@ private:
 };
 
 extern ClassAllocator<Http2ClientSession> http2ClientSessionAllocator;
+
+///////////////////////////////////////////////
+// INLINE
+
+inline const Http2UpgradeContext &
+Http2ClientSession::get_upgrade_context() const
+{
+  return upgrade_context;
+}
+
+inline bool
+Http2ClientSession::ready_to_free() const
+{
+  return kill_me;
+}
+
+inline void
+Http2ClientSession::set_dying_event(int event)
+{
+  dying_event = event;
+}
+
+inline int
+Http2ClientSession::get_dying_event() const
+{
+  return dying_event;
+}
+
+inline bool
+Http2ClientSession::is_recursing() const
+{
+  return recursion > 0;
+}
+
+inline bool
+Http2ClientSession::get_half_close_local_flag() const
+{
+  return half_close_local;
+}
+
+inline bool
+Http2ClientSession::is_url_pushed(const char *url, int url_len)
+{
+  return h2_pushed_urls.find(url) != h2_pushed_urls.end();
+}
+
+inline int64_t
+Http2ClientSession::write_buffer_size()
+{
+  return write_buffer->max_read_avail();
+}
diff --git a/proxy/http2/Http2Stream.cc b/proxy/http2/Http2Stream.cc
index e4d6542..c2e5195 100644
--- a/proxy/http2/Http2Stream.cc
+++ b/proxy/http2/Http2Stream.cc
@@ -1039,12 +1039,6 @@ Http2Stream::decrement_server_rwnd(size_t amount)
   }
 }
 
-void
-Http2Stream::mark_milestone(Http2StreamMilestone type)
-{
-  this->_milestones.mark(type);
-}
-
 bool
 Http2Stream::_switch_thread_if_not_on_right_thread(int event, void *edata)
 {
@@ -1059,12 +1053,6 @@ Http2Stream::_switch_thread_if_not_on_right_thread(int 
event, void *edata)
   return true;
 }
 
-bool
-Http2Stream::is_body_done() const
-{
-  return body_done;
-}
-
 void
 Http2Stream::mark_body_done()
 {
@@ -1075,90 +1063,3 @@ Http2Stream::mark_body_done()
     this->write_vio.nbytes = response_header.length_get() + 
chunked_handler.dechunked_size;
   }
 }
-
-void
-Http2Stream::update_sent_count(unsigned num_bytes)
-{
-  bytes_sent += num_bytes;
-  this->write_vio.ndone += num_bytes;
-}
-
-Http2StreamId
-Http2Stream::get_id() const
-{
-  return _id;
-}
-
-int
-Http2Stream::get_transaction_id() const
-{
-  return _id;
-}
-
-Http2StreamState
-Http2Stream::get_state() const
-{
-  return _state;
-}
-
-void
-Http2Stream::update_initial_rwnd(Http2WindowSize new_size)
-{
-  this->_client_rwnd = new_size;
-}
-
-bool
-Http2Stream::has_trailing_header() const
-{
-  return trailing_header;
-}
-
-void
-Http2Stream::set_request_headers(HTTPHdr &h2_headers)
-{
-  _req_header.copy(&h2_headers);
-}
-
-// Check entire DATA payload length if content-length: header is exist
-void
-Http2Stream::increment_data_length(uint64_t length)
-{
-  data_length += length;
-}
-
-bool
-Http2Stream::payload_length_is_valid() const
-{
-  uint32_t content_length = _req_header.get_content_length();
-  return content_length == 0 || content_length == data_length;
-}
-
-bool
-Http2Stream::response_is_chunked() const
-{
-  return chunked;
-}
-
-bool
-Http2Stream::allow_half_open() const
-{
-  return false;
-}
-
-bool
-Http2Stream::is_client_state_writeable() const
-{
-  return _state == Http2StreamState::HTTP2_STREAM_STATE_OPEN || _state == 
Http2StreamState::HTTP2_STREAM_STATE_HALF_CLOSED_REMOTE ||
-         _state == Http2StreamState::HTTP2_STREAM_STATE_RESERVED_LOCAL;
-}
-bool
-Http2Stream::is_closed() const
-{
-  return closed;
-}
-
-bool
-Http2Stream::is_first_transaction() const
-{
-  return is_first_transaction_flag;
-}
diff --git a/proxy/http2/Http2Stream.h b/proxy/http2/Http2Stream.h
index 8b0489b..20bae58 100644
--- a/proxy/http2/Http2Stream.h
+++ b/proxy/http2/Http2Stream.h
@@ -225,3 +225,106 @@ private:
 };
 
 extern ClassAllocator<Http2Stream> http2StreamAllocator;
+
+////////////////////////////////////////////////////
+// INLINE
+
+inline void
+Http2Stream::mark_milestone(Http2StreamMilestone type)
+{
+  this->_milestones.mark(type);
+}
+
+inline bool
+Http2Stream::is_body_done() const
+{
+  return body_done;
+}
+
+inline void
+Http2Stream::update_sent_count(unsigned num_bytes)
+{
+  bytes_sent += num_bytes;
+  this->write_vio.ndone += num_bytes;
+}
+
+inline Http2StreamId
+Http2Stream::get_id() const
+{
+  return _id;
+}
+
+inline int
+Http2Stream::get_transaction_id() const
+{
+  return _id;
+}
+
+inline Http2StreamState
+Http2Stream::get_state() const
+{
+  return _state;
+}
+
+inline void
+Http2Stream::update_initial_rwnd(Http2WindowSize new_size)
+{
+  this->_client_rwnd = new_size;
+}
+
+inline bool
+Http2Stream::has_trailing_header() const
+{
+  return trailing_header;
+}
+
+inline void
+Http2Stream::set_request_headers(HTTPHdr &h2_headers)
+{
+  _req_header.copy(&h2_headers);
+}
+
+inline // Check entire DATA payload length if content-length: header is exist
+  void
+  Http2Stream::increment_data_length(uint64_t length)
+{
+  data_length += length;
+}
+
+inline bool
+Http2Stream::payload_length_is_valid() const
+{
+  uint32_t content_length = _req_header.get_content_length();
+  return content_length == 0 || content_length == data_length;
+}
+
+inline bool
+Http2Stream::response_is_chunked() const
+{
+  return chunked;
+}
+
+inline bool
+Http2Stream::allow_half_open() const
+{
+  return false;
+}
+
+inline bool
+Http2Stream::is_client_state_writeable() const
+{
+  return _state == Http2StreamState::HTTP2_STREAM_STATE_OPEN || _state == 
Http2StreamState::HTTP2_STREAM_STATE_HALF_CLOSED_REMOTE ||
+         _state == Http2StreamState::HTTP2_STREAM_STATE_RESERVED_LOCAL;
+}
+
+inline bool
+Http2Stream::is_closed() const
+{
+  return closed;
+}
+
+inline bool
+Http2Stream::is_first_transaction() const
+{
+  return is_first_transaction_flag;
+}

Reply via email to