winlin

move buffer to kernel. extract ISrsReader for buffer

@@ -134,7 +134,7 @@ MODULE_ID="KERNEL" @@ -134,7 +134,7 @@ MODULE_ID="KERNEL"
134 MODULE_DEPENDS=("CORE") 134 MODULE_DEPENDS=("CORE")
135 ModuleLibIncs=(${SRS_OBJS}) 135 ModuleLibIncs=(${SRS_OBJS})
136 MODULE_FILES=("srs_kernel_error" "srs_kernel_log" "srs_kernel_reload" "srs_kernel_config" 136 MODULE_FILES=("srs_kernel_error" "srs_kernel_log" "srs_kernel_reload" "srs_kernel_config"
137 - "srs_kernel_stream") 137 + "srs_kernel_stream" "srs_kernel_buffer")
138 MODULE_DIR="src/kernel" . auto/modules.sh 138 MODULE_DIR="src/kernel" . auto/modules.sh
139 KERNEL_OBJS="${MODULE_OBJS[@]}" 139 KERNEL_OBJS="${MODULE_OBJS[@]}"
140 # 140 #
@@ -144,7 +144,7 @@ MODULE_DEPENDS=("CORE" "KERNEL") @@ -144,7 +144,7 @@ MODULE_DEPENDS=("CORE" "KERNEL")
144 ModuleLibIncs=(${LibSTRoot} ${LibHttpParserRoot} ${LibSSLRoot} ${SRS_OBJS}) 144 ModuleLibIncs=(${LibSTRoot} ${LibHttpParserRoot} ${LibSSLRoot} ${SRS_OBJS})
145 MODULE_FILES=("srs_core_server" 145 MODULE_FILES=("srs_core_server"
146 "srs_core_conn" "srs_core_client" 146 "srs_core_conn" "srs_core_client"
147 - "srs_core_rtmp" "srs_core_socket" "srs_core_buffer" 147 + "srs_core_rtmp" "srs_core_socket"
148 "srs_core_protocol" "srs_core_amf0" 148 "srs_core_protocol" "srs_core_amf0"
149 "srs_core_source" "srs_core_codec" 149 "srs_core_source" "srs_core_codec"
150 "srs_core_handshake" "srs_core_pithy_print" 150 "srs_core_handshake" "srs_core_pithy_print"
@@ -27,7 +27,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -27,7 +27,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 #include <srs_core_amf0.hpp> 27 #include <srs_core_amf0.hpp>
28 #include <srs_kernel_error.hpp> 28 #include <srs_kernel_error.hpp>
29 #include <srs_core_socket.hpp> 29 #include <srs_core_socket.hpp>
30 -#include <srs_core_buffer.hpp> 30 +#include <srs_kernel_buffer.hpp>
31 #include <srs_kernel_stream.hpp> 31 #include <srs_kernel_stream.hpp>
32 #include <srs_core_autofree.hpp> 32 #include <srs_core_autofree.hpp>
33 33
@@ -31,12 +31,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -31,12 +31,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 #include <srs_core.hpp> 31 #include <srs_core.hpp>
32 32
33 #include <srs_core_st.hpp> 33 #include <srs_core_st.hpp>
  34 +#include <srs_kernel_buffer.hpp>
34 35
35 /** 36 /**
36 * the socket provides TCP socket over st, 37 * the socket provides TCP socket over st,
37 * that is, the sync socket mechanism. 38 * that is, the sync socket mechanism.
38 */ 39 */
39 -class SrsSocket 40 +class SrsSocket : public ISrsReader
40 { 41 {
41 private: 42 private:
42 int64_t recv_timeout; 43 int64_t recv_timeout;
@@ -21,14 +21,21 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN @@ -21,14 +21,21 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */ 22 */
23 23
24 -#include <srs_core_buffer.hpp> 24 +#include <srs_kernel_buffer.hpp>
25 25
26 #include <srs_kernel_error.hpp> 26 #include <srs_kernel_error.hpp>
27 -#include <srs_core_socket.hpp>  
28 #include <srs_kernel_log.hpp> 27 #include <srs_kernel_log.hpp>
29 28
30 #define SOCKET_READ_SIZE 4096 29 #define SOCKET_READ_SIZE 4096
31 30
  31 +ISrsReader::ISrsReader()
  32 +{
  33 +}
  34 +
  35 +ISrsReader::~ISrsReader()
  36 +{
  37 +}
  38 +
32 SrsBuffer::SrsBuffer() 39 SrsBuffer::SrsBuffer()
33 { 40 {
34 } 41 }
@@ -57,7 +64,7 @@ void SrsBuffer::append(char* bytes, int size) @@ -57,7 +64,7 @@ void SrsBuffer::append(char* bytes, int size)
57 data.insert(data.end(), bytes, bytes + size); 64 data.insert(data.end(), bytes, bytes + size);
58 } 65 }
59 66
60 -int SrsBuffer::ensure_buffer_bytes(SrsSocket* skt, int required_size) 67 +int SrsBuffer::ensure_buffer_bytes(ISrsReader* skt, int required_size)
61 { 68 {
62 int ret = ERROR_SUCCESS; 69 int ret = ERROR_SUCCESS;
63 70
@@ -21,18 +21,25 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN @@ -21,18 +21,25 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */ 22 */
23 23
24 -#ifndef SRS_CORE_BUFFER_HPP  
25 -#define SRS_CORE_BUFFER_HPP 24 +#ifndef SRS_KERNEL_BUFFER_HPP
  25 +#define SRS_KERNEL_BUFFER_HPP
26 26
27 /* 27 /*
28 -#include <srs_core_buffer.hpp> 28 +#include <srs_kernel_buffer.hpp>
29 */ 29 */
30 30
31 #include <srs_core.hpp> 31 #include <srs_core.hpp>
32 32
33 #include <vector> 33 #include <vector>
34 34
35 -class SrsSocket; 35 +class ISrsReader
  36 +{
  37 +public:
  38 + ISrsReader();
  39 + virtual ~ISrsReader();
  40 +public:
  41 + virtual int read(const void* buf, size_t size, ssize_t* nread) = 0;
  42 +};
36 43
37 /** 44 /**
38 * the buffer provices bytes cache for protocol. generally, 45 * the buffer provices bytes cache for protocol. generally,
@@ -53,7 +60,7 @@ public: @@ -53,7 +60,7 @@ public:
53 private: 60 private:
54 virtual void append(char* bytes, int size); 61 virtual void append(char* bytes, int size);
55 public: 62 public:
56 - virtual int ensure_buffer_bytes(SrsSocket* skt, int required_size); 63 + virtual int ensure_buffer_bytes(ISrsReader* skt, int required_size);
57 }; 64 };
58 65
59 #endif 66 #endif
@@ -10,6 +10,8 @@ file @@ -10,6 +10,8 @@ file
10 ..\core\srs_core_autofree.hpp, 10 ..\core\srs_core_autofree.hpp,
11 ..\core\srs_core_autofree.cpp, 11 ..\core\srs_core_autofree.cpp,
12 kernel readonly separator, 12 kernel readonly separator,
  13 + ..\kernel\srs_kernel_buffer.hpp,
  14 + ..\kernel\srs_kernel_buffer.cpp,
13 ..\kernel\srs_kernel_config.hpp, 15 ..\kernel\srs_kernel_config.hpp,
14 ..\kernel\srs_kernel_config.cpp, 16 ..\kernel\srs_kernel_config.cpp,
15 ..\kernel\srs_kernel_error.hpp, 17 ..\kernel\srs_kernel_error.hpp,
@@ -25,8 +27,6 @@ file @@ -25,8 +27,6 @@ file
25 ..\app\srs_core_amf0.cpp, 27 ..\app\srs_core_amf0.cpp,
26 ..\app\srs_core_bandwidth.hpp, 28 ..\app\srs_core_bandwidth.hpp,
27 ..\app\srs_core_bandwidth.cpp, 29 ..\app\srs_core_bandwidth.cpp,
28 - ..\app\srs_core_buffer.hpp,  
29 - ..\app\srs_core_buffer.cpp,  
30 ..\app\srs_core_client.hpp, 30 ..\app\srs_core_client.hpp,
31 ..\app\srs_core_client.cpp, 31 ..\app\srs_core_client.cpp,
32 ..\app\srs_core_codec.hpp, 32 ..\app\srs_core_codec.hpp,