| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef NET_TOOLS_FLIP_SERVER_SPDY_INTERFACE_H_ | 5 #ifndef NET_TOOLS_FLIP_SERVER_SPDY_INTERFACE_H_ | 
| 6 #define NET_TOOLS_FLIP_SERVER_SPDY_INTERFACE_H_ | 6 #define NET_TOOLS_FLIP_SERVER_SPDY_INTERFACE_H_ | 
| 7 | 7 | 
| 8 #include <map> | 8 #include <map> | 
| 9 #include <string> | 9 #include <string> | 
| 10 #include <vector> | 10 #include <vector> | 
| 11 | 11 | 
| 12 #include "base/compiler_specific.h" | 12 #include "base/compiler_specific.h" | 
| 13 #include "net/spdy/buffered_spdy_framer.h" | 13 #include "net/spdy/buffered_spdy_framer.h" | 
| 14 #include "net/spdy/spdy_protocol.h" | 14 #include "net/spdy/spdy_protocol.h" | 
| 15 #include "net/tools/balsa/balsa_headers.h" | 15 #include "net/tools/balsa/balsa_headers.h" | 
| 16 #include "net/tools/balsa/balsa_visitor_interface.h" | 16 #include "net/tools/balsa/balsa_visitor_interface.h" | 
| 17 #include "net/tools/flip_server/output_ordering.h" | 17 #include "net/tools/flip_server/output_ordering.h" | 
| 18 #include "net/tools/flip_server/sm_connection.h" | 18 #include "net/tools/flip_server/sm_connection.h" | 
| 19 #include "net/tools/flip_server/sm_interface.h" | 19 #include "net/tools/flip_server/sm_interface.h" | 
| 20 | 20 | 
| 21 namespace net { | 21 namespace net { | 
| 22 | 22 | 
| 23 class FlipAcceptor; | 23 class FlipAcceptor; | 
| 24 class MemoryCache; | 24 class MemoryCache; | 
| 25 | 25 | 
| 26 class SpdySM : public BufferedSpdyFramerVisitorInterface, | 26 class SpdySM : public BufferedSpdyFramerVisitorInterface, public SMInterface { | 
| 27                public SMInterface { |  | 
| 28  public: | 27  public: | 
| 29   SpdySM(SMConnection* connection, | 28   SpdySM(SMConnection* connection, | 
| 30          SMInterface* sm_http_interface, | 29          SMInterface* sm_http_interface, | 
| 31          EpollServer* epoll_server, | 30          EpollServer* epoll_server, | 
| 32          MemoryCache* memory_cache, | 31          MemoryCache* memory_cache, | 
| 33          FlipAcceptor* acceptor, | 32          FlipAcceptor* acceptor, | 
| 34          SpdyMajorVersion spdy_version); | 33          SpdyMajorVersion spdy_version); | 
| 35   virtual ~SpdySM(); | 34   virtual ~SpdySM(); | 
| 36 | 35 | 
| 37   virtual void InitSMInterface(SMInterface* sm_http_interface, | 36   virtual void InitSMInterface(SMInterface* sm_http_interface, | 
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 143   virtual void NewStream(uint32 stream_id, | 142   virtual void NewStream(uint32 stream_id, | 
| 144                          uint32 priority, | 143                          uint32 priority, | 
| 145                          const std::string& filename) OVERRIDE; | 144                          const std::string& filename) OVERRIDE; | 
| 146   void AddToOutputOrder(const MemCacheIter& mci); | 145   void AddToOutputOrder(const MemCacheIter& mci); | 
| 147   virtual void SendEOF(uint32 stream_id) OVERRIDE; | 146   virtual void SendEOF(uint32 stream_id) OVERRIDE; | 
| 148   virtual void SendErrorNotFound(uint32 stream_id) OVERRIDE; | 147   virtual void SendErrorNotFound(uint32 stream_id) OVERRIDE; | 
| 149   virtual size_t SendSynStream(uint32 stream_id, | 148   virtual size_t SendSynStream(uint32 stream_id, | 
| 150                                const BalsaHeaders& headers) OVERRIDE; | 149                                const BalsaHeaders& headers) OVERRIDE; | 
| 151   virtual size_t SendSynReply(uint32 stream_id, | 150   virtual size_t SendSynReply(uint32 stream_id, | 
| 152                               const BalsaHeaders& headers) OVERRIDE; | 151                               const BalsaHeaders& headers) OVERRIDE; | 
| 153   virtual void SendDataFrame(uint32 stream_id, const char* data, int64 len, | 152   virtual void SendDataFrame(uint32 stream_id, | 
| 154                              uint32 flags, bool compress) OVERRIDE; | 153                              const char* data, | 
|  | 154                              int64 len, | 
|  | 155                              uint32 flags, | 
|  | 156                              bool compress) OVERRIDE; | 
| 155   BufferedSpdyFramer* spdy_framer() { return buffered_spdy_framer_; } | 157   BufferedSpdyFramer* spdy_framer() { return buffered_spdy_framer_; } | 
| 156 | 158 | 
| 157   const OutputOrdering& output_ordering() const { | 159   const OutputOrdering& output_ordering() const { | 
| 158     return client_output_ordering_; | 160     return client_output_ordering_; | 
| 159   } | 161   } | 
| 160 | 162 | 
| 161   static std::string forward_ip_header() { return forward_ip_header_; } | 163   static std::string forward_ip_header() { return forward_ip_header_; } | 
| 162   static void set_forward_ip_header(const std::string& value) { | 164   static void set_forward_ip_header(const std::string& value) { | 
| 163     forward_ip_header_ = value; | 165     forward_ip_header_ = value; | 
| 164   } | 166   } | 
| 165 | 167 | 
| 166  private: | 168  private: | 
| 167   void SendEOFImpl(uint32 stream_id); | 169   void SendEOFImpl(uint32 stream_id); | 
| 168   void SendErrorNotFoundImpl(uint32 stream_id); | 170   void SendErrorNotFoundImpl(uint32 stream_id); | 
| 169   void KillStream(uint32 stream_id); | 171   void KillStream(uint32 stream_id); | 
| 170   void CopyHeaders(SpdyHeaderBlock& dest, const BalsaHeaders& headers); | 172   void CopyHeaders(SpdyHeaderBlock& dest, const BalsaHeaders& headers); | 
| 171   size_t SendSynStreamImpl(uint32 stream_id, const BalsaHeaders& headers); | 173   size_t SendSynStreamImpl(uint32 stream_id, const BalsaHeaders& headers); | 
| 172   size_t SendSynReplyImpl(uint32 stream_id, const BalsaHeaders& headers); | 174   size_t SendSynReplyImpl(uint32 stream_id, const BalsaHeaders& headers); | 
| 173   void SendDataFrameImpl(uint32 stream_id, const char* data, int64 len, | 175   void SendDataFrameImpl(uint32 stream_id, | 
| 174                          SpdyDataFlags flags, bool compress); | 176                          const char* data, | 
|  | 177                          int64 len, | 
|  | 178                          SpdyDataFlags flags, | 
|  | 179                          bool compress); | 
| 175   void EnqueueDataFrame(DataFrame* df); | 180   void EnqueueDataFrame(DataFrame* df); | 
| 176   virtual void GetOutput() OVERRIDE; | 181   virtual void GetOutput() OVERRIDE; | 
| 177 | 182 | 
| 178  private: | 183  private: | 
| 179   BufferedSpdyFramer* buffered_spdy_framer_; | 184   BufferedSpdyFramer* buffered_spdy_framer_; | 
| 180   bool valid_spdy_session_;  // True if we have seen valid data on this session. | 185   bool valid_spdy_session_;  // True if we have seen valid data on this session. | 
| 181                              // Use this to fail fast when junk is sent to our | 186                              // Use this to fail fast when junk is sent to our | 
| 182                              // port. | 187                              // port. | 
| 183 | 188 | 
| 184   SMConnection* connection_; | 189   SMConnection* connection_; | 
| 185   OutputList* client_output_list_; | 190   OutputList* client_output_list_; | 
| 186   OutputOrdering client_output_ordering_; | 191   OutputOrdering client_output_ordering_; | 
| 187   uint32 next_outgoing_stream_id_; | 192   uint32 next_outgoing_stream_id_; | 
| 188   EpollServer* epoll_server_; | 193   EpollServer* epoll_server_; | 
| 189   FlipAcceptor* acceptor_; | 194   FlipAcceptor* acceptor_; | 
| 190   MemoryCache* memory_cache_; | 195   MemoryCache* memory_cache_; | 
| 191   std::vector<SMInterface*> server_interface_list; | 196   std::vector<SMInterface*> server_interface_list; | 
| 192   std::vector<int32> unused_server_interface_list; | 197   std::vector<int32> unused_server_interface_list; | 
| 193   typedef std::map<uint32, SMInterface*> StreamToSmif; | 198   typedef std::map<uint32, SMInterface*> StreamToSmif; | 
| 194   StreamToSmif stream_to_smif_; | 199   StreamToSmif stream_to_smif_; | 
| 195   bool close_on_error_; | 200   bool close_on_error_; | 
| 196 | 201 | 
| 197   static std::string forward_ip_header_; | 202   static std::string forward_ip_header_; | 
| 198 }; | 203 }; | 
| 199 | 204 | 
| 200 }  // namespace net | 205 }  // namespace net | 
| 201 | 206 | 
| 202 #endif  // NET_TOOLS_FLIP_SERVER_SPDY_INTERFACE_H_ | 207 #endif  // NET_TOOLS_FLIP_SERVER_SPDY_INTERFACE_H_ | 
| OLD | NEW | 
|---|