Repository: trafficserver
Updated Branches:
  refs/heads/master 4cbbf2c8f -> 0c697b238


TS-2721: add more hook support for atscppapi


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/7bedd881
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/7bedd881
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/7bedd881

Branch: refs/heads/master
Commit: 7bedd881a09438e99a7e49b84b6e8ef9420742eb
Parents: 4cbbf2c
Author: Sandeep Davu <[email protected]>
Authored: Mon Mar 2 20:04:50 2015 +0000
Committer: Kit Chan <[email protected]>
Committed: Mon Mar 2 20:04:50 2015 +0000

----------------------------------------------------------------------
 lib/atscppapi/src/Plugin.cc                  |  6 +++++-
 lib/atscppapi/src/include/atscppapi/Plugin.h | 26 ++++++++++++++++++++++-
 lib/atscppapi/src/utils_internal.cc          | 21 ++++++++++++++++++
 3 files changed, 51 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7bedd881/lib/atscppapi/src/Plugin.cc
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/Plugin.cc b/lib/atscppapi/src/Plugin.cc
index dd8d603..214d278 100644
--- a/lib/atscppapi/src/Plugin.cc
+++ b/lib/atscppapi/src/Plugin.cc
@@ -26,6 +26,10 @@ const std::string atscppapi::HOOK_TYPE_STRINGS[] = { 
std::string("HOOK_READ_REQU
                                                      
std::string("HOOK_SEND_REQUEST_HEADERS"),
                                                      
std::string("HOOK_READ_RESPONSE_HEADERS"),
                                                      
std::string("HOOK_SEND_RESPONSE_HEADERS"),
-                                                     std::string("HOOK_OS_DNS")
+                                                     
std::string("HOOK_OS_DNS"),
+                                                     
std::string("HOOK_READ_REQUEST_HEADERS"),
+                                                     
std::string("HOOK_READ_CACHE_HEADERS"),
+                                                     
std::string("HOOK_CACHE_LOOKUP_COMPLETE"),
+                                                     
std::string("HOOK_SELECT_ALT")
                                                       };
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7bedd881/lib/atscppapi/src/include/atscppapi/Plugin.h
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/include/atscppapi/Plugin.h 
b/lib/atscppapi/src/include/atscppapi/Plugin.h
index 677a3bd..ce1d943 100644
--- a/lib/atscppapi/src/include/atscppapi/Plugin.h
+++ b/lib/atscppapi/src/include/atscppapi/Plugin.h
@@ -54,7 +54,11 @@ public:
     HOOK_SEND_REQUEST_HEADERS, /**< This hook will be fired right before 
request headers are sent to the origin */
     HOOK_READ_RESPONSE_HEADERS, /**< This hook will be fired right after 
response headers have been read from the origin */
     HOOK_SEND_RESPONSE_HEADERS, /**< This hook will be fired right before the 
response headers are sent to the client */
-    HOOK_OS_DNS /**< This hook will be fired right after the OS DNS lookup */
+    HOOK_OS_DNS, /**< This hook will be fired right after the OS DNS lookup */
+    HOOK_READ_REQUEST_HEADERS, /**< This hook will be fired after the request 
is read. */
+    HOOK_READ_CACHE_HEADERS, /**< This hook will be fired after the CACHE 
hdrs. */
+    HOOK_CACHE_LOOKUP_COMPLETE, /**< This hook will be fired after caceh 
lookup complete. */
+    HOOK_SELECT_ALT /**< This hook will be fired after select alt. */
   };
 
   /**
@@ -87,6 +91,26 @@ public:
    */
   virtual void handleOsDns(Transaction &transaction) { transaction.resume(); };
 
+  /**
+   * This method must be implemented when you hook HOOK_READ_REQUEST_HEADERS
+   */
+  virtual void handleReadRequestHeaders(Transaction &transaction) { 
transaction.resume(); };
+
+  /**
+   * This method must be implemented when you hook HOOK_READ_CACHE_HEADERS
+   */
+  virtual void handleReadCacheHeaders(Transaction &transaction) { 
transaction.resume(); };
+
+  /**
+   * This method must be implemented when you hook HOOK_CACHE_LOOKUP_COMPLETE
+   */
+  virtual void handleReadCacheLookupComplete(Transaction &transaction) { 
transaction.resume(); };
+
+  /**
+   * This method must be implemented when you hook HOOK_SELECT_ALT
+   */
+  virtual void handleSelectAlt(Transaction &transaction) { 
transaction.resume(); };
+
   virtual ~Plugin() { };
 protected:
   /**

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7bedd881/lib/atscppapi/src/utils_internal.cc
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/utils_internal.cc 
b/lib/atscppapi/src/utils_internal.cc
index 236def8..12538c7 100644
--- a/lib/atscppapi/src/utils_internal.cc
+++ b/lib/atscppapi/src/utils_internal.cc
@@ -122,6 +122,19 @@ void inline invokePluginForEvent(Plugin *plugin, TSHttpTxn 
ats_txn_handle, TSEve
   case TS_EVENT_HTTP_OS_DNS:
     plugin->handleOsDns(transaction);
     break;
+  case TS_EVENT_HTTP_READ_REQUEST_HDR:
+    plugin->handleReadRequestHeaders(transaction);
+    break;
+  case TS_EVENT_HTTP_READ_CACHE_HDR:
+    plugin->handleReadCacheHeaders(transaction);
+    break;
+  case TS_EVENT_HTTP_CACHE_LOOKUP_COMPLETE:
+    plugin->handleReadCacheLookupComplete(transaction);
+    break;
+  case TS_EVENT_HTTP_SELECT_ALT:
+    plugin->handleSelectAlt(transaction);
+    break;
+
   default:
     assert(false); /* we should never get here */
     break;
@@ -158,6 +171,14 @@ TSHttpHookID 
utils::internal::convertInternalHookToTsHook(Plugin::HookType hookt
     return TS_HTTP_SEND_RESPONSE_HDR_HOOK;
   case Plugin::HOOK_OS_DNS:
     return TS_HTTP_OS_DNS_HOOK;
+  case Plugin::HOOK_READ_REQUEST_HEADERS:
+    return TS_HTTP_READ_REQUEST_HDR_HOOK;
+  case Plugin::HOOK_READ_CACHE_HEADERS:
+    return TS_HTTP_READ_CACHE_HDR_HOOK;
+  case Plugin::HOOK_CACHE_LOOKUP_COMPLETE:
+    return TS_HTTP_CACHE_LOOKUP_COMPLETE_HOOK;
+  case Plugin::HOOK_SELECT_ALT:
+    return TS_HTTP_SELECT_ALT_HOOK;
   default:
     assert(false); // shouldn't happen, let's catch it early
     break;

Reply via email to