32 return nsukitStatus_t::NSUKIT_STATUS_ACCEPT_FAIL;
35 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
41 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
48 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
68 auto res = nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
71 if (tcp_status == 0) {
72 res |= nsukitStatus_t::NSUKIT_STATUS_ITF_FAIL;
83 auto res = nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
86 if (tcp_status == 0) {
87 res |= nsukitStatus_t::NSUKIT_STATUS_ITF_FAIL;
103 std::map<unsigned int, Memory *>::iterator it;
105 if (it->second->self_alloc) free(it->second->memory);
120 return nsukitStatus_t::NSUKIT_STATUS_ACCEPT_FAIL;
123 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
128 auto res = nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
133 res |= nsukitStatus_t::NSUKIT_STATUS_ITF_FAIL;
143 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
149 if (buf ==
nullptr) {
151 mem->self_alloc =
true;
154 mem->self_alloc =
false;
157 memset(mem->memory, length, 1);
159 mem->mem_size = length;
160 mem->finish_event.setEvent();
170 if (!mem->finish_event.isSet()) {
171 return nsukitStatus_t::NSUKIT_STATUS_STREAM_RUNNING;
173 mem->finish_event.resetEvent();
174 if (mem->self_alloc) free(mem->memory);
177 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
189 auto res = nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
192 std::unique_lock<std::mutex> lock(mem->mtx);
193 if (mem->mem_size < length + offset) {
194 return nsukitStatus_t::NSUKIT_STATUS_INVALID_VALUE;
196 mem->need_size = length;
202 std::unique_lock<std::mutex> lock(
opLock);
227 cur_count = length - totalLen > block ? block : length - totalLen;
231 std::unique_lock<std::mutex> lock(mem->
mtx);
232 mem->
error_msg +=
"connect interrupt error";
234 }
else if (stLen > 0) {
235 std::unique_lock<std::mutex> lock(mem->
mtx);
238 if (totalLen >= length) {
251 return nsukitStatus_t::NSUKIT_STATUS_INVALID_VALUE;
253 mem->finish_event.waitForEvent(
static_cast<int>(timeout));
255 std::unique_lock<std::mutex> lock(mem->mtx);
256 if (!mem->error_msg.empty()) {
257 return nsukitStatus_t::NSUKIT_STATUS_STREAM_FAIL;
258 }
else if (mem->using_size < mem->need_size) {
259 return nsukitStatus_t::NSUKIT_STATUS_STREAM_RUNNING;
261 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
271 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
277 bool (*stop_event)(),
float timeout,
int flag) {
278 auto res =
open_recv(chnl, fd, length, offset);
280 res = nsukitStatus_t::NSUKIT_STATUS_STREAM_RUNNING;
281 while (!
stop_event() && res!=nsukitStatus_t::NSUKIT_STATUS_SUCCESS) {
296 bool (*stop_event)(),
float timeout,
int flag) {
virtual nsukitStatus_t stream_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0, bool(*stop_event)()=nullptr, float timeout=5., int flag=1)
virtual nsukitStatus_t open_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0)
void Init(bool update, unsigned short int port=0, std::string ip="")
int ConnectServer(float connect_time=SELECT_TIMEOUT)
int RecvData(int s, char *buf, int len)
nsukitStatus_t accept(nsuInitParam_t *param) override
nsukitStatus_t set_timeout(float s) override
nsukitStatus_t recv_bytes(nsuSize_t size, nsuCharBuf_p buf) override
nsukitStatus_t send_bytes(nsuBytes_t &bytes) override
nsukitStatus_t write(nsuRegAddr_t addr, nsuRegValue_t value) override
nsukitStatus_t read(nsuRegAddr_t addr, nsuRegValue_t *buf) override
nsukitStatus_t close() override
nsukitStatus_t set_timeout(float s) override
static void _recv(SocketGenerator *sock, ThreadSafeEvent *stop_event, Memory *mem, uint32_t block, nsuStreamLen_t length, nsuStreamLen_t offset=0)
~TCPStreamUItf() override
unsigned int memory_index
nsukitStatus_t wait_stream(nsuMemory_p fd, float timeout=1.) override
nsukitStatus_t open_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0) override
nsukitStatus_t close() override
std::map< unsigned int, Memory * > memory_dict
nsukitStatus_t free_buffer(nsuMemory_p fd) override
std::thread upload_thread
nsukitStatus_t break_stream(nsuMemory_p fd) override
nsuVoidBuf_p get_buffer(nsuMemory_p fd, nsuStreamLen_t length) override
nsukitStatus_t accept(nsuInitParam_t *param) override
nsukitStatus_t stream_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0, bool(*stop_event)()=nullptr, float timeout=5., int flag=1) override
nsuMemory_p alloc_buffer(nsuStreamLen_t length, nsuVoidBuf_p buf=nullptr) override
nsukitStatus_t open_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0) override
nsukitStatus_t stream_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0, bool(*stop_event)()=nullptr, float timeout=5., int flag=1) override
ThreadSafeEvent stop_event
virtual nsukitStatus_t _common_write(nsuRegAddr_t reg, nsuRegValue_t value)
virtual nsukitStatus_t _common_read(nsuRegAddr_t reg, nsuRegValue_t *buf)
#define DEBUG_PRINT_CLASS(message)
int TcpRecvBytes(SocketGenerator *s, char *buf, size_t len, bool *stopped=nullptr)
int TcpSendBytes(SocketGenerator *s, char *buf, size_t len, bool *stopped=nullptr)
uint32_t stream_tcp_block
nsuStreamLen_t using_size
ThreadSafeEvent finish_event
DLLEXTERN typedef nsuSize_t nsuStreamLen_t
DLLEXTERN typedef size_t nsuSize_t
DLLEXTERN typedef void * nsuVoidBuf_p
DLLEXTERN typedef void * nsuMemory_p
DLLEXTERN typedef char * nsuCharBuf_p
DLLEXTERN typedef std::vector< char > nsuBytes_t
DLLEXTERN typedef uint32_t nsuRegValue_t
DLLEXTERN typedef uint8_t nsuChnlNum_t
DLLEXTERN typedef uint32_t nsuRegAddr_t