正在显示
13 个修改的文件
包含
138 行增加
和
69 行删除
| @@ -156,7 +156,7 @@ ModuleLibIncs=(${SRS_OBJS_DIR}) | @@ -156,7 +156,7 @@ ModuleLibIncs=(${SRS_OBJS_DIR}) | ||
| 156 | MODULE_FILES=("srs_kernel_error" "srs_kernel_log" "srs_kernel_buffer" | 156 | MODULE_FILES=("srs_kernel_error" "srs_kernel_log" "srs_kernel_buffer" |
| 157 | "srs_kernel_utility" "srs_kernel_flv" "srs_kernel_codec" "srs_kernel_file" | 157 | "srs_kernel_utility" "srs_kernel_flv" "srs_kernel_codec" "srs_kernel_file" |
| 158 | "srs_kernel_consts" "srs_kernel_aac" "srs_kernel_mp3" "srs_kernel_ts" | 158 | "srs_kernel_consts" "srs_kernel_aac" "srs_kernel_mp3" "srs_kernel_ts" |
| 159 | - "srs_kernel_stream" "srs_kernel_balance" "srs_kernel_mp4") | 159 | + "srs_kernel_stream" "srs_kernel_balance" "srs_kernel_mp4" "srs_kernel_io") |
| 160 | KERNEL_INCS="src/kernel"; MODULE_DIR=${KERNEL_INCS} . auto/modules.sh | 160 | KERNEL_INCS="src/kernel"; MODULE_DIR=${KERNEL_INCS} . auto/modules.sh |
| 161 | KERNEL_OBJS="${MODULE_OBJS[@]}" | 161 | KERNEL_OBJS="${MODULE_OBJS[@]}" |
| 162 | # | 162 | # |
| @@ -115,6 +115,7 @@ | @@ -115,6 +115,7 @@ | ||
| 115 | 3C7175B91E1DEA8000E8C49F /* sync.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C7175B11E1DEA8000E8C49F /* sync.c */; }; | 115 | 3C7175B91E1DEA8000E8C49F /* sync.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C7175B11E1DEA8000E8C49F /* sync.c */; }; |
| 116 | 3C82802C1BAFF8CC004A1794 /* srs_kafka_stack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C82802A1BAFF8CC004A1794 /* srs_kafka_stack.cpp */; }; | 116 | 3C82802C1BAFF8CC004A1794 /* srs_kafka_stack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C82802A1BAFF8CC004A1794 /* srs_kafka_stack.cpp */; }; |
| 117 | 3C8CE01E1C3F482100548CC6 /* srs_app_hourglass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C8CE01D1C3F482100548CC6 /* srs_app_hourglass.cpp */; }; | 117 | 3C8CE01E1C3F482100548CC6 /* srs_app_hourglass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C8CE01D1C3F482100548CC6 /* srs_app_hourglass.cpp */; }; |
| 118 | + 3CA432A81E3F46DD001DA0C6 /* srs_kernel_io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CA432A61E3F46DD001DA0C6 /* srs_kernel_io.cpp */; }; | ||
| 118 | 3CB25C2A1BB269FD00C97A63 /* jmp_sp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */; }; | 119 | 3CB25C2A1BB269FD00C97A63 /* jmp_sp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */; }; |
| 119 | 3CC52DD81ACE4023006FEB01 /* srs_utest_amf0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CC52DCA1ACE4023006FEB01 /* srs_utest_amf0.cpp */; }; | 120 | 3CC52DD81ACE4023006FEB01 /* srs_utest_amf0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CC52DCA1ACE4023006FEB01 /* srs_utest_amf0.cpp */; }; |
| 120 | 3CC52DD91ACE4023006FEB01 /* srs_utest_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CC52DCC1ACE4023006FEB01 /* srs_utest_config.cpp */; }; | 121 | 3CC52DD91ACE4023006FEB01 /* srs_utest_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CC52DCC1ACE4023006FEB01 /* srs_utest_config.cpp */; }; |
| @@ -403,6 +404,8 @@ | @@ -403,6 +404,8 @@ | ||
| 403 | 3C82802B1BAFF8CC004A1794 /* srs_kafka_stack.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_kafka_stack.hpp; path = ../../../src/protocol/srs_kafka_stack.hpp; sourceTree = "<group>"; }; | 404 | 3C82802B1BAFF8CC004A1794 /* srs_kafka_stack.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_kafka_stack.hpp; path = ../../../src/protocol/srs_kafka_stack.hpp; sourceTree = "<group>"; }; |
| 404 | 3C8CE01C1C3F482100548CC6 /* srs_app_hourglass.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_hourglass.hpp; path = ../../../src/app/srs_app_hourglass.hpp; sourceTree = "<group>"; }; | 405 | 3C8CE01C1C3F482100548CC6 /* srs_app_hourglass.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_hourglass.hpp; path = ../../../src/app/srs_app_hourglass.hpp; sourceTree = "<group>"; }; |
| 405 | 3C8CE01D1C3F482100548CC6 /* srs_app_hourglass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_hourglass.cpp; path = ../../../src/app/srs_app_hourglass.cpp; sourceTree = "<group>"; }; | 406 | 3C8CE01D1C3F482100548CC6 /* srs_app_hourglass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_hourglass.cpp; path = ../../../src/app/srs_app_hourglass.cpp; sourceTree = "<group>"; }; |
| 407 | + 3CA432A61E3F46DD001DA0C6 /* srs_kernel_io.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_kernel_io.cpp; path = ../../../src/kernel/srs_kernel_io.cpp; sourceTree = "<group>"; }; | ||
| 408 | + 3CA432A71E3F46DD001DA0C6 /* srs_kernel_io.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_kernel_io.hpp; path = ../../../src/kernel/srs_kernel_io.hpp; sourceTree = "<group>"; }; | ||
| 406 | 3CB25C281BB2596300C97A63 /* setup_variables.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = setup_variables.sh; path = ../../../auto/setup_variables.sh; sourceTree = "<group>"; }; | 409 | 3CB25C281BB2596300C97A63 /* setup_variables.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = setup_variables.sh; path = ../../../auto/setup_variables.sh; sourceTree = "<group>"; }; |
| 407 | 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jmp_sp.cpp; path = ../../../research/arm/jmp_sp.cpp; sourceTree = "<group>"; }; | 410 | 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jmp_sp.cpp; path = ../../../research/arm/jmp_sp.cpp; sourceTree = "<group>"; }; |
| 408 | 3CC52DCA1ACE4023006FEB01 /* srs_utest_amf0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_utest_amf0.cpp; path = ../../src/utest/srs_utest_amf0.cpp; sourceTree = "<group>"; }; | 411 | 3CC52DCA1ACE4023006FEB01 /* srs_utest_amf0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_utest_amf0.cpp; path = ../../src/utest/srs_utest_amf0.cpp; sourceTree = "<group>"; }; |
| @@ -534,6 +537,8 @@ | @@ -534,6 +537,8 @@ | ||
| 534 | 3C1232131AAE814D00CE8F6C /* srs_kernel_file.hpp */, | 537 | 3C1232131AAE814D00CE8F6C /* srs_kernel_file.hpp */, |
| 535 | 3C1232141AAE814D00CE8F6C /* srs_kernel_flv.cpp */, | 538 | 3C1232141AAE814D00CE8F6C /* srs_kernel_flv.cpp */, |
| 536 | 3C1232151AAE814D00CE8F6C /* srs_kernel_flv.hpp */, | 539 | 3C1232151AAE814D00CE8F6C /* srs_kernel_flv.hpp */, |
| 540 | + 3CA432A61E3F46DD001DA0C6 /* srs_kernel_io.cpp */, | ||
| 541 | + 3CA432A71E3F46DD001DA0C6 /* srs_kernel_io.hpp */, | ||
| 537 | 3C1232161AAE814D00CE8F6C /* srs_kernel_log.cpp */, | 542 | 3C1232161AAE814D00CE8F6C /* srs_kernel_log.cpp */, |
| 538 | 3C1232171AAE814D00CE8F6C /* srs_kernel_log.hpp */, | 543 | 3C1232171AAE814D00CE8F6C /* srs_kernel_log.hpp */, |
| 539 | 3C1232181AAE814D00CE8F6C /* srs_kernel_mp3.cpp */, | 544 | 3C1232181AAE814D00CE8F6C /* srs_kernel_mp3.cpp */, |
| @@ -1074,6 +1079,7 @@ | @@ -1074,6 +1079,7 @@ | ||
| 1074 | 3C12329D1AAE81D900CE8F6C /* srs_app_heartbeat.cpp in Sources */, | 1079 | 3C12329D1AAE81D900CE8F6C /* srs_app_heartbeat.cpp in Sources */, |
| 1075 | 3C1232231AAE814D00CE8F6C /* srs_kernel_consts.cpp in Sources */, | 1080 | 3C1232231AAE814D00CE8F6C /* srs_kernel_consts.cpp in Sources */, |
| 1076 | 3C1232AF1AAE81D900CE8F6C /* srs_app_rtsp.cpp in Sources */, | 1081 | 3C1232AF1AAE81D900CE8F6C /* srs_app_rtsp.cpp in Sources */, |
| 1082 | + 3CA432A81E3F46DD001DA0C6 /* srs_kernel_io.cpp in Sources */, | ||
| 1077 | 3CC52DDD1ACE4023006FEB01 /* srs_utest_reload.cpp in Sources */, | 1083 | 3CC52DDD1ACE4023006FEB01 /* srs_utest_reload.cpp in Sources */, |
| 1078 | 3C689FA11AB6AAC800C9CEEE /* sync.c in Sources */, | 1084 | 3C689FA11AB6AAC800C9CEEE /* sync.c in Sources */, |
| 1079 | 3C068D6A1B10149F00AA722C /* srs_protocol_kbps.cpp in Sources */, | 1085 | 3C068D6A1B10149F00AA722C /* srs_protocol_kbps.cpp in Sources */, |
| @@ -155,7 +155,7 @@ int SrsHttpResponseWriter::write(char* data, int size) | @@ -155,7 +155,7 @@ int SrsHttpResponseWriter::write(char* data, int size) | ||
| 155 | return ret; | 155 | return ret; |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | -int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | 158 | +int SrsHttpResponseWriter::writev(const iovec* iov, int iovcnt, ssize_t* pnwrite) |
| 159 | { | 159 | { |
| 160 | int ret = ERROR_SUCCESS; | 160 | int ret = ERROR_SUCCESS; |
| 161 | 161 | ||
| @@ -163,7 +163,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | @@ -163,7 +163,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | ||
| 163 | if (!header_wrote || content_length != -1) { | 163 | if (!header_wrote || content_length != -1) { |
| 164 | ssize_t nwrite = 0; | 164 | ssize_t nwrite = 0; |
| 165 | for (int i = 0; i < iovcnt; i++) { | 165 | for (int i = 0; i < iovcnt; i++) { |
| 166 | - iovec* piovc = iov + i; | 166 | + const iovec* piovc = iov + i; |
| 167 | nwrite += piovc->iov_len; | 167 | nwrite += piovc->iov_len; |
| 168 | if ((ret = write((char*)piovc->iov_base, (int)piovc->iov_len)) != ERROR_SUCCESS) { | 168 | if ((ret = write((char*)piovc->iov_base, (int)piovc->iov_len)) != ERROR_SUCCESS) { |
| 169 | return ret; | 169 | return ret; |
| @@ -196,7 +196,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | @@ -196,7 +196,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | ||
| 196 | // chunk size. | 196 | // chunk size. |
| 197 | int size = 0; | 197 | int size = 0; |
| 198 | for (int i = 0; i < iovcnt; i++) { | 198 | for (int i = 0; i < iovcnt; i++) { |
| 199 | - iovec* data_iov = iov + i; | 199 | + const iovec* data_iov = iov + i; |
| 200 | size += data_iov->iov_len; | 200 | size += data_iov->iov_len; |
| 201 | } | 201 | } |
| 202 | written += size; | 202 | written += size; |
| @@ -215,7 +215,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | @@ -215,7 +215,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | ||
| 215 | 215 | ||
| 216 | // chunk body. | 216 | // chunk body. |
| 217 | for (int i = 0; i < iovcnt; i++) { | 217 | for (int i = 0; i < iovcnt; i++) { |
| 218 | - iovec* data_iov = iov + i; | 218 | + const iovec* data_iov = iov + i; |
| 219 | iovs[0].iov_base = (char*)data_iov->iov_base; | 219 | iovs[0].iov_base = (char*)data_iov->iov_base; |
| 220 | iovs[0].iov_len = (int)data_iov->iov_len; | 220 | iovs[0].iov_len = (int)data_iov->iov_len; |
| 221 | iovs++; | 221 | iovs++; |
| @@ -103,7 +103,7 @@ public: | @@ -103,7 +103,7 @@ public: | ||
| 103 | virtual int final_request(); | 103 | virtual int final_request(); |
| 104 | virtual SrsHttpHeader* header(); | 104 | virtual SrsHttpHeader* header(); |
| 105 | virtual int write(char* data, int size); | 105 | virtual int write(char* data, int size); |
| 106 | - virtual int writev(iovec* iov, int iovcnt, ssize_t* pnwrite); | 106 | + virtual int writev(const iovec* iov, int iovcnt, ssize_t* pnwrite); |
| 107 | virtual void write_header(int code); | 107 | virtual void write_header(int code); |
| 108 | virtual int send_header(char* data, int size); | 108 | virtual int send_header(char* data, int size); |
| 109 | }; | 109 | }; |
| @@ -440,7 +440,7 @@ int SrsBufferWriter::write(void* buf, size_t count, ssize_t* pnwrite) | @@ -440,7 +440,7 @@ int SrsBufferWriter::write(void* buf, size_t count, ssize_t* pnwrite) | ||
| 440 | return writer->write((char*)buf, (int)count); | 440 | return writer->write((char*)buf, (int)count); |
| 441 | } | 441 | } |
| 442 | 442 | ||
| 443 | -int SrsBufferWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | 443 | +int SrsBufferWriter::writev(const iovec* iov, int iovcnt, ssize_t* pnwrite) |
| 444 | { | 444 | { |
| 445 | return writer->writev(iov, iovcnt, pnwrite); | 445 | return writer->writev(iov, iovcnt, pnwrite); |
| 446 | } | 446 | } |
| @@ -210,7 +210,7 @@ public: | @@ -210,7 +210,7 @@ public: | ||
| 210 | virtual int64_t tellg(); | 210 | virtual int64_t tellg(); |
| 211 | public: | 211 | public: |
| 212 | virtual int write(void* buf, size_t count, ssize_t* pnwrite); | 212 | virtual int write(void* buf, size_t count, ssize_t* pnwrite); |
| 213 | - virtual int writev(iovec* iov, int iovcnt, ssize_t* pnwrite); | 213 | + virtual int writev(const iovec* iov, int iovcnt, ssize_t* pnwrite); |
| 214 | }; | 214 | }; |
| 215 | 215 | ||
| 216 | /** | 216 | /** |
| @@ -146,13 +146,13 @@ int SrsFileWriter::write(void* buf, size_t count, ssize_t* pnwrite) | @@ -146,13 +146,13 @@ int SrsFileWriter::write(void* buf, size_t count, ssize_t* pnwrite) | ||
| 146 | return ret; | 146 | return ret; |
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | -int SrsFileWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | 149 | +int SrsFileWriter::writev(const iovec* iov, int iovcnt, ssize_t* pnwrite) |
| 150 | { | 150 | { |
| 151 | int ret = ERROR_SUCCESS; | 151 | int ret = ERROR_SUCCESS; |
| 152 | 152 | ||
| 153 | ssize_t nwrite = 0; | 153 | ssize_t nwrite = 0; |
| 154 | for (int i = 0; i < iovcnt; i++) { | 154 | for (int i = 0; i < iovcnt; i++) { |
| 155 | - iovec* piov = iov + i; | 155 | + const iovec* piov = iov + i; |
| 156 | ssize_t this_nwrite = 0; | 156 | ssize_t this_nwrite = 0; |
| 157 | if ((ret = write(piov->iov_base, piov->iov_len, &this_nwrite)) != ERROR_SUCCESS) { | 157 | if ((ret = write(piov->iov_base, piov->iov_len, &this_nwrite)) != ERROR_SUCCESS) { |
| 158 | return ret; | 158 | return ret; |
| @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 29 | */ | 29 | */ |
| 30 | #include <srs_core.hpp> | 30 | #include <srs_core.hpp> |
| 31 | 31 | ||
| 32 | +#include <srs_kernel_io.hpp> | ||
| 33 | + | ||
| 32 | #include <string> | 34 | #include <string> |
| 33 | 35 | ||
| 34 | // for srs-librtmp, @see https://github.com/ossrs/srs/issues/213 | 36 | // for srs-librtmp, @see https://github.com/ossrs/srs/issues/213 |
| @@ -39,7 +41,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -39,7 +41,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 39 | /** | 41 | /** |
| 40 | * file writer, to write to file. | 42 | * file writer, to write to file. |
| 41 | */ | 43 | */ |
| 42 | -class SrsFileWriter | 44 | +class SrsFileWriter : public ISrsBufferWriter |
| 43 | { | 45 | { |
| 44 | private: | 46 | private: |
| 45 | std::string path; | 47 | std::string path; |
| @@ -77,13 +79,13 @@ public: | @@ -77,13 +79,13 @@ public: | ||
| 77 | * for the HTTP FLV, to writev to improve performance. | 79 | * for the HTTP FLV, to writev to improve performance. |
| 78 | * @see https://github.com/ossrs/srs/issues/405 | 80 | * @see https://github.com/ossrs/srs/issues/405 |
| 79 | */ | 81 | */ |
| 80 | - virtual int writev(iovec* iov, int iovcnt, ssize_t* pnwrite); | 82 | + virtual int writev(const iovec* iov, int iovcnt, ssize_t* pnwrite); |
| 81 | }; | 83 | }; |
| 82 | 84 | ||
| 83 | /** | 85 | /** |
| 84 | * file reader, to read from file. | 86 | * file reader, to read from file. |
| 85 | */ | 87 | */ |
| 86 | -class SrsFileReader | 88 | +class SrsFileReader : public ISrsBufferReader |
| 87 | { | 89 | { |
| 88 | private: | 90 | private: |
| 89 | std::string path; | 91 | std::string path; |
trunk/src/kernel/srs_kernel_io.cpp
0 → 100644
| 1 | +/* | ||
| 2 | +The MIT License (MIT) | ||
| 3 | + | ||
| 4 | +Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | +Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | +this software and associated documentation files (the "Software"), to deal in | ||
| 8 | +the Software without restriction, including without limitation the rights to | ||
| 9 | +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | +the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | +subject to the following conditions: | ||
| 12 | + | ||
| 13 | +The above copyright notice and this permission notice shall be included in all | ||
| 14 | +copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | +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. | ||
| 22 | +*/ | ||
| 23 | + | ||
| 24 | +#include <srs_kernel_io.hpp> | ||
| 25 | + | ||
| 26 | +ISrsBufferReader::ISrsBufferReader() | ||
| 27 | +{ | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +ISrsBufferReader::~ISrsBufferReader() | ||
| 31 | +{ | ||
| 32 | +} | ||
| 33 | + | ||
| 34 | +ISrsBufferWriter::ISrsBufferWriter() | ||
| 35 | +{ | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +ISrsBufferWriter::~ISrsBufferWriter() | ||
| 39 | +{ | ||
| 40 | +} | ||
| 41 | + |
trunk/src/kernel/srs_kernel_io.hpp
0 → 100644
| 1 | +/* | ||
| 2 | +The MIT License (MIT) | ||
| 3 | + | ||
| 4 | +Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | +Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | +this software and associated documentation files (the "Software"), to deal in | ||
| 8 | +the Software without restriction, including without limitation the rights to | ||
| 9 | +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | +the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | +subject to the following conditions: | ||
| 12 | + | ||
| 13 | +The above copyright notice and this permission notice shall be included in all | ||
| 14 | +copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | +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. | ||
| 22 | +*/ | ||
| 23 | + | ||
| 24 | +#ifndef SRS_KERNEL_IO_HPP | ||
| 25 | +#define SRS_KERNEL_IO_HPP | ||
| 26 | + | ||
| 27 | +/* | ||
| 28 | +#include <srs_kernel_io.hpp> | ||
| 29 | +*/ | ||
| 30 | + | ||
| 31 | +#include <srs_core.hpp> | ||
| 32 | + | ||
| 33 | +// for srs-librtmp, @see https://github.com/ossrs/srs/issues/213 | ||
| 34 | +#ifndef _WIN32 | ||
| 35 | +#include <sys/uio.h> | ||
| 36 | +#endif | ||
| 37 | + | ||
| 38 | +/** | ||
| 39 | + * the reader for the buffer to read from whatever channel. | ||
| 40 | + */ | ||
| 41 | +class ISrsBufferReader | ||
| 42 | +{ | ||
| 43 | +public: | ||
| 44 | + ISrsBufferReader(); | ||
| 45 | + virtual ~ISrsBufferReader(); | ||
| 46 | + // for protocol/amf0/msg-codec | ||
| 47 | +public: | ||
| 48 | + virtual int read(void* buf, size_t size, ssize_t* nread) = 0; | ||
| 49 | +}; | ||
| 50 | + | ||
| 51 | +/** | ||
| 52 | + * the writer for the buffer to write to whatever channel. | ||
| 53 | + */ | ||
| 54 | +class ISrsBufferWriter | ||
| 55 | +{ | ||
| 56 | +public: | ||
| 57 | + ISrsBufferWriter(); | ||
| 58 | + virtual ~ISrsBufferWriter(); | ||
| 59 | + // for protocol | ||
| 60 | +public: | ||
| 61 | + /** | ||
| 62 | + * write bytes over writer. | ||
| 63 | + * @nwrite the actual written bytes. NULL to ignore. | ||
| 64 | + */ | ||
| 65 | + virtual int write(void* buf, size_t size, ssize_t* nwrite) = 0; | ||
| 66 | + /** | ||
| 67 | + * write iov over writer. | ||
| 68 | + * @nwrite the actual written bytes. NULL to ignore. | ||
| 69 | + */ | ||
| 70 | + virtual int writev(const iovec *iov, int iov_size, ssize_t* nwrite) = 0; | ||
| 71 | +}; | ||
| 72 | + | ||
| 73 | +#endif | ||
| 74 | + |
| @@ -201,7 +201,7 @@ public: | @@ -201,7 +201,7 @@ public: | ||
| 201 | * for the HTTP FLV, to writev to improve performance. | 201 | * for the HTTP FLV, to writev to improve performance. |
| 202 | * @see https://github.com/ossrs/srs/issues/405 | 202 | * @see https://github.com/ossrs/srs/issues/405 |
| 203 | */ | 203 | */ |
| 204 | - virtual int writev(iovec* iov, int iovcnt, ssize_t* pnwrite) = 0; | 204 | + virtual int writev(const iovec* iov, int iovcnt, ssize_t* pnwrite) = 0; |
| 205 | 205 | ||
| 206 | // WriteHeader sends an HTTP response header with status code. | 206 | // WriteHeader sends an HTTP response header with status code. |
| 207 | // If WriteHeader is not called explicitly, the first call to Write | 207 | // If WriteHeader is not called explicitly, the first call to Write |
| @@ -23,22 +23,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -23,22 +23,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 23 | 23 | ||
| 24 | #include <srs_protocol_io.hpp> | 24 | #include <srs_protocol_io.hpp> |
| 25 | 25 | ||
| 26 | -ISrsBufferReader::ISrsBufferReader() | ||
| 27 | -{ | ||
| 28 | -} | ||
| 29 | - | ||
| 30 | -ISrsBufferReader::~ISrsBufferReader() | ||
| 31 | -{ | ||
| 32 | -} | ||
| 33 | - | ||
| 34 | -ISrsBufferWriter::ISrsBufferWriter() | ||
| 35 | -{ | ||
| 36 | -} | ||
| 37 | - | ||
| 38 | -ISrsBufferWriter::~ISrsBufferWriter() | ||
| 39 | -{ | ||
| 40 | -} | ||
| 41 | - | ||
| 42 | ISrsProtocolStatistic::ISrsProtocolStatistic() | 26 | ISrsProtocolStatistic::ISrsProtocolStatistic() |
| 43 | { | 27 | { |
| 44 | } | 28 | } |
| @@ -30,10 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -30,10 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 30 | 30 | ||
| 31 | #include <srs_core.hpp> | 31 | #include <srs_core.hpp> |
| 32 | 32 | ||
| 33 | -// for srs-librtmp, @see https://github.com/ossrs/srs/issues/213 | ||
| 34 | -#ifndef _WIN32 | ||
| 35 | -#include <sys/uio.h> | ||
| 36 | -#endif | 33 | +#include <srs_kernel_io.hpp> |
| 37 | 34 | ||
| 38 | /** | 35 | /** |
| 39 | * the system io reader/writer architecture: | 36 | * the system io reader/writer architecture: |
| @@ -61,41 +58,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -61,41 +58,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 61 | */ | 58 | */ |
| 62 | 59 | ||
| 63 | /** | 60 | /** |
| 64 | -* the reader for the buffer to read from whatever channel. | ||
| 65 | -*/ | ||
| 66 | -class ISrsBufferReader | ||
| 67 | -{ | ||
| 68 | -public: | ||
| 69 | - ISrsBufferReader(); | ||
| 70 | - virtual ~ISrsBufferReader(); | ||
| 71 | -// for protocol/amf0/msg-codec | ||
| 72 | -public: | ||
| 73 | - virtual int read(void* buf, size_t size, ssize_t* nread) = 0; | ||
| 74 | -}; | ||
| 75 | - | ||
| 76 | -/** | ||
| 77 | -* the writer for the buffer to write to whatever channel. | ||
| 78 | -*/ | ||
| 79 | -class ISrsBufferWriter | ||
| 80 | -{ | ||
| 81 | -public: | ||
| 82 | - ISrsBufferWriter(); | ||
| 83 | - virtual ~ISrsBufferWriter(); | ||
| 84 | -// for protocol | ||
| 85 | -public: | ||
| 86 | - /** | ||
| 87 | - * write bytes over writer. | ||
| 88 | - * @nwrite the actual written bytes. NULL to ignore. | ||
| 89 | - */ | ||
| 90 | - virtual int write(void* buf, size_t size, ssize_t* nwrite) = 0; | ||
| 91 | - /** | ||
| 92 | - * write iov over writer. | ||
| 93 | - * @nwrite the actual written bytes. NULL to ignore. | ||
| 94 | - */ | ||
| 95 | - virtual int writev(const iovec *iov, int iov_size, ssize_t* nwrite) = 0; | ||
| 96 | -}; | ||
| 97 | - | ||
| 98 | -/** | ||
| 99 | * get the statistic of channel. | 61 | * get the statistic of channel. |
| 100 | */ | 62 | */ |
| 101 | class ISrsProtocolStatistic | 63 | class ISrsProtocolStatistic |
-
请 注册 或 登录 后发表评论