From 9d942da8dd46b3597818e2294f442497869c358c Mon Sep 17 00:00:00 2001
From: armatusmiles <akurotych@gmail.com>
Date: Mon, 28 Jan 2019 15:44:29 +0700
Subject: [PATCH] [*] Renaming in dap_circular_buffer

---
 core/circular_buffer.h        | 54 +++++++++++++++++++++++++
 core/dap_circular_buffer.c    | 36 ++++++++---------
 core/dap_circular_buffer.h    | 23 ++++++-----
 test/core/dap_circular_test.c | 76 +++++++++++++++++------------------
 4 files changed, 122 insertions(+), 67 deletions(-)
 create mode 100755 core/circular_buffer.h

diff --git a/core/circular_buffer.h b/core/circular_buffer.h
new file mode 100755
index 0000000..a7d5d80
--- /dev/null
+++ b/core/circular_buffer.h
@@ -0,0 +1,54 @@
+//
+//  CircularBuffer.h
+//
+//  Created by 罗亮富(Roen)zxllf23@163.com on 14-1-14.
+//  Copyright (c) 2014å¹´ All rights reserved.
+//
+//  Note: Edited by Kurotych Anatolii
+
+#ifndef YYDJ_Roen_CircularBuffer_h
+#define YYDJ_Roen_CircularBuffer_h
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+/*
+ A circular buffer(circular queue, cyclic buffer or ring buffer), is a data structure that uses a single, fixed-size buffer as if it were connected end-to-end. This structure lends itself easily to buffering data streams. visit https://en.wikipedia.org/wiki/Circular_buffer to see more information.
+ */
+
+typedef struct s_circularBuffer* CircularBuffer;
+
+// Construct CircularBuffer with ‘size' in byte. You must call CircularBufferFree() in balance for destruction.
+extern CircularBuffer CircularBufferCreate(size_t size);
+
+// Destruct CircularBuffer
+extern void CircularBufferFree(CircularBuffer cBuf);
+
+// Reset the CircularBuffer
+extern void CircularBufferReset(CircularBuffer cBuf);
+
+//get the capacity of CircularBuffer
+extern size_t CircularBufferGetCapacity(CircularBuffer cBuf);
+
+//get occupied data size of CircularBuffer
+extern size_t CircularBufferGetDataSize(CircularBuffer cBuf);
+
+// Push data to the tail of a circular buffer from 'src' with 'length' size in byte.
+extern void CircularBufferPush(CircularBuffer cBuf,void *src, size_t length);
+
+// Pop data from a circular buffer to 'dataOut'  with wished 'length' size in byte,return the actual data size in byte popped out,which is less or equal to the input 'length parameter.
+extern size_t CircularBufferPop(CircularBuffer cBuf, size_t length, void *dataOut);
+
+// Read data from a circular buffer to 'dataOut'  with wished 'length' size in byte,return the actual data size in byte popped out,which is less or equal to the input 'length parameter.
+extern size_t CircularBufferRead(CircularBuffer cBuf, size_t length, void *dataOut);
+
+#ifdef __unix__
+// Write data from a cicrular buffer to file descriptor. This is non blocking operation ( use flags MSG_DONTWAIT | MSG_NOSIGNAL )
+// if >= 0 return write data count
+// <= 0 reserved for errors
+extern int CircularBufferWriteInSocket(CircularBuffer cBuf, int sockfd);
+#endif
+
+//for test purpose, print the circular buffer's data content by printf(...); the 'hex' parameters indicates that if the data should be printed in asscii string or hex data format.
+extern void CircularBufferPrint(CircularBuffer cBuf, bool hex);
+#endif
diff --git a/core/dap_circular_buffer.c b/core/dap_circular_buffer.c
index 2127f49..fba6592 100755
--- a/core/dap_circular_buffer.c
+++ b/core/dap_circular_buffer.c
@@ -25,44 +25,44 @@ struct s_circularBuffer{
 
 };
 
-extern CircularBuffer CircularBufferCreate(size_t size)
+extern circular_buffer_t circular_buffer_create(size_t size)
 {
     size_t totalSize = sizeof(struct s_circularBuffer) + size;
     void *p = malloc(totalSize);
-    CircularBuffer buffer = (CircularBuffer)p;
+    circular_buffer_t buffer = (circular_buffer_t)p;
     buffer->buffer = p + sizeof(struct s_circularBuffer);
     buffer->capacity = size;
-    CircularBufferReset(buffer);
+    circular_buffer_reset(buffer);
     return buffer;
 }
 
-void CircularBufferFree(CircularBuffer cBuf)
+void circular_buffer_free(circular_buffer_t cBuf)
 {
-    CircularBufferReset(cBuf);
+    circular_buffer_reset(cBuf);
     cBuf->capacity = 0;
     cBuf->dataSize = 0;
     cBuf->buffer = NULL;
     free(cBuf);
 }
 
-void CircularBufferReset(CircularBuffer cBuf)
+void circular_buffer_reset(circular_buffer_t cBuf)
 {
     cBuf->headOffset = -1;
     cBuf->tailOffset = -1;
     cBuf->dataSize = 0;
 }
 
-size_t CircularBufferGetCapacity(CircularBuffer cBuf)
+size_t circular_buffer_get_capacity(circular_buffer_t cBuf)
 {
     return cBuf->capacity;
 }
 
-size_t CircularBufferGetDataSize(CircularBuffer cBuf)
+size_t circular_buffer_get_data_size(circular_buffer_t cBuf)
 {
     return cBuf->dataSize;
 }
 
-void CircularBufferPush(CircularBuffer cBuf,void *src, size_t length)
+void circular_buffer_push(circular_buffer_t cBuf,void *src, size_t length)
 {
     if(length == 0)
         return;
@@ -133,7 +133,7 @@ void CircularBufferPush(CircularBuffer cBuf,void *src, size_t length)
 #include <sys/types.h>
 #include <sys/socket.h>
 
-int CircularBufferWriteInSocket(CircularBuffer cBuf, int sockfd)
+int circular_buffer_write_In_socket(circular_buffer_t cBuf, int sockfd)
 {
     if(cBuf->dataSize == 0) {
         return 0;
@@ -181,7 +181,7 @@ int CircularBufferWriteInSocket(CircularBuffer cBuf, int sockfd)
 
             if(rdLen < (ssize_t)countBytesToEnd) {
                 log_it(L_WARNING, "rdLen < countBytesToEnd");
-                CircularBufferPop(cBuf, rdLen, NULL);
+                circular_buffer_pop(cBuf, rdLen, NULL);
                 return rdLen;
             }
 
@@ -215,7 +215,7 @@ int CircularBufferWriteInSocket(CircularBuffer cBuf, int sockfd)
 
 #endif
 
-size_t inter_circularBuffer_read(CircularBuffer cBuf, size_t length, void *dataOut, bool resetHead)
+size_t inter_circularBuffer_read(circular_buffer_t cBuf, size_t length, void *dataOut, bool resetHead)
 {
     if(cBuf->dataSize == 0 || length == 0)
         return 0;
@@ -284,29 +284,29 @@ size_t inter_circularBuffer_read(CircularBuffer cBuf, size_t length, void *dataO
 }
 
 
-size_t CircularBufferPop(CircularBuffer cBuf, size_t length, void *dataOut)
+size_t circular_buffer_pop(circular_buffer_t cBuf, size_t length, void *dataOut)
 {
     return inter_circularBuffer_read(cBuf,length,dataOut,true);
 }
 
-size_t CircularBufferRead(CircularBuffer cBuf, size_t length, void *dataOut)
+size_t circular_buffer_read(circular_buffer_t cBuf, size_t length, void *dataOut)
 {
     return inter_circularBuffer_read(cBuf,length,dataOut,false);
 }
 
 
 //print circular buffer's content into str,
-void CircularBufferPrint(CircularBuffer cBuf, bool hex)
+void circular_buffer_print(circular_buffer_t cBuf, bool hex)
 {
     u_int8_t *b = cBuf->buffer;
-    size_t cSize = CircularBufferGetCapacity(cBuf);
+    size_t cSize = circular_buffer_get_capacity(cBuf);
     char *str = malloc(2*cSize+1);
 
     char c;
 
     for(size_t i=0; i<cSize; i++)
     {
-        if(CircularBufferGetDataSize(cBuf) == 0)
+        if(circular_buffer_get_data_size(cBuf) == 0)
         {
             c = '_';
         }
@@ -330,7 +330,7 @@ void CircularBufferPrint(CircularBuffer cBuf, bool hex)
             sprintf(str+i*2, "%c|",c);
     }
 
-    printf("CircularBuffer: %s <size %zu dataSize:%zu>\n",str,CircularBufferGetCapacity(cBuf),CircularBufferGetDataSize(cBuf));
+    printf("CircularBuffer: %s <size %zu dataSize:%zu>\n",str,circular_buffer_get_capacity(cBuf),circular_buffer_get_data_size(cBuf));
 
     free(str);
 }
diff --git a/core/dap_circular_buffer.h b/core/dap_circular_buffer.h
index 68ee8ee..5a59da7 100755
--- a/core/dap_circular_buffer.h
+++ b/core/dap_circular_buffer.h
@@ -4,6 +4,7 @@
 //  Created by 罗亮富(Roen)zxllf23@163.com on 14-1-14.
 //  Copyright (c) 2014å¹´ All rights reserved.
 //
+//  Note: edited by Anatolii Kurotych
 
 #ifndef YYDJ_Roen_CircularBuffer_h
 #define YYDJ_Roen_CircularBuffer_h
@@ -15,37 +16,37 @@
  A circular buffer(circular queue, cyclic buffer or ring buffer), is a data structure that uses a single, fixed-size buffer as if it were connected end-to-end. This structure lends itself easily to buffering data streams. visit https://en.wikipedia.org/wiki/Circular_buffer to see more information.
  */
 
-typedef struct s_circularBuffer* CircularBuffer;
+typedef struct s_circularBuffer* circular_buffer_t;
 
 // Construct CircularBuffer with ‘size' in byte. You must call CircularBufferFree() in balance for destruction.
-extern CircularBuffer CircularBufferCreate(size_t size);
+extern circular_buffer_t circular_buffer_create(size_t size);
 
 // Destruct CircularBuffer
-extern void CircularBufferFree(CircularBuffer cBuf);
+extern void circular_buffer_free(circular_buffer_t cBuf);
 
 // Reset the CircularBuffer
-extern void CircularBufferReset(CircularBuffer cBuf);
+extern void circular_buffer_reset(circular_buffer_t cBuf);
 
 //get the capacity of CircularBuffer
-extern size_t CircularBufferGetCapacity(CircularBuffer cBuf);
+extern size_t circular_buffer_get_capacity(circular_buffer_t cBuf);
 
 //get occupied data size of CircularBuffer
-extern size_t CircularBufferGetDataSize(CircularBuffer cBuf);
+extern size_t circular_buffer_get_data_size(circular_buffer_t cBuf);
 
 // Push data to the tail of a circular buffer from 'src' with 'length' size in byte.
-extern void CircularBufferPush(CircularBuffer cBuf,void *src, size_t length);
+extern void circular_buffer_push(circular_buffer_t cBuf,void *src, size_t length);
 
 // Pop data from a circular buffer to 'dataOut'  with wished 'length' size in byte,return the actual data size in byte popped out,which is less or equal to the input 'length parameter.
-extern size_t CircularBufferPop(CircularBuffer cBuf, size_t length, void *dataOut);
+extern size_t circular_buffer_pop(circular_buffer_t cBuf, size_t length, void *dataOut);
 
 // Read data from a circular buffer to 'dataOut'  with wished 'length' size in byte,return the actual data size in byte popped out,which is less or equal to the input 'length parameter.
-extern size_t CircularBufferRead(CircularBuffer cBuf, size_t length, void *dataOut);
+extern size_t circular_buffer_read(circular_buffer_t cBuf, size_t length, void *dataOut);
 
 //for test purpose, print the circular buffer's data content by printf(...); the 'hex' parameters indicates that if the data should be printed in asscii string or hex data format.
-extern void CircularBufferPrint(CircularBuffer cBuf, bool hex);
+extern void circular_buffer_print(circular_buffer_t cBuf, bool hex);
 
 #ifdef __unix__
 // Read data from a circular buffer to socketFd
-extern int CircularBufferWriteInSocket(CircularBuffer cBuf, int sockfd);
+extern int circular_buffer_write_In_socket(circular_buffer_t cBuf, int sockfd);
 #endif
 #endif
diff --git a/test/core/dap_circular_test.c b/test/core/dap_circular_test.c
index cc397a0..ed5cbe5 100644
--- a/test/core/dap_circular_test.c
+++ b/test/core/dap_circular_test.c
@@ -12,17 +12,17 @@ static char *chars_string = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO
 void dap_circular_test_simple()
 {
     const int buf_size = 8;
-    CircularBuffer cb = CircularBufferCreate(buf_size);
+    circular_buffer_t cb = circular_buffer_create(buf_size);
 
-    CircularBufferPush(cb, chars_string, buf_size);
+    circular_buffer_push(cb, chars_string, buf_size);
 
     int fd[2];
     socketpair(PF_LOCAL, SOCK_STREAM, 0, fd);
 
-    int ret = CircularBufferWriteInSocket(cb, fd[0]);
+    int ret = circular_buffer_write_In_socket(cb, fd[0]);
     dap_assert(ret == buf_size, "Check ret write in socket");
 
-    ret = CircularBufferWriteInSocket(cb, fd[0]);
+    ret = circular_buffer_write_In_socket(cb, fd[0]);
     dap_assert(ret == 0, "Check ret write in socket");
     char result_buff[MAX_RESULT_BUF_LEN] = {0};
     ssize_t res = read(fd[1], result_buff, 44);
@@ -31,11 +31,11 @@ void dap_circular_test_simple()
 
     dap_assert(dap_strn_equals(result_buff, chars_string, buf_size),
                "Check result buf");
-    dap_assert(CircularBufferGetDataSize(cb) == 0, "Check data size");
+    dap_assert(circular_buffer_get_data_size(cb) == 0, "Check data size");
 
     close(fd[0]);
     close(fd[1]);
-    CircularBufferFree(cb);
+    circular_buffer_free(cb);
     dap_pass_msg("Test simple");
 }
 
@@ -44,18 +44,18 @@ void dap_circular_test_double_write()
     const int buf_size = 8;
     const char* expected_string = "0123456701";
     int expected_string_len = strlen(expected_string);
-    CircularBuffer cb = CircularBufferCreate(buf_size);
+    circular_buffer_t cb = circular_buffer_create(buf_size);
 
-    CircularBufferPush(cb, chars_string, buf_size);
+    circular_buffer_push(cb, chars_string, buf_size);
 
     int fd[2];
     socketpair(PF_LOCAL, SOCK_STREAM, 0, fd);
 
-    int ret = CircularBufferWriteInSocket(cb, fd[0]);
+    int ret = circular_buffer_write_In_socket(cb, fd[0]);
 
-    CircularBufferPush(cb, chars_string, 2);
+    circular_buffer_push(cb, chars_string, 2);
 
-    ret = CircularBufferWriteInSocket(cb, fd[0]);
+    ret = circular_buffer_write_In_socket(cb, fd[0]);
     dap_assert(ret == 2, "Check ret write in socket");
 
     char result_buff[MAX_RESULT_BUF_LEN] = {0};
@@ -65,10 +65,10 @@ void dap_circular_test_double_write()
 
     dap_assert(dap_str_equals(result_buff, expected_string),
                "Check result buf");
-    dap_assert(CircularBufferGetDataSize(cb) == 0, "Check data size");
+    dap_assert(circular_buffer_get_data_size(cb) == 0, "Check data size");
     dap_pass_msg("Double write");
 
-    CircularBufferFree(cb);
+    circular_buffer_free(cb);
     close(fd[0]);
     close(fd[1]);
 }
@@ -78,11 +78,11 @@ void dap_circular_test_defrag_write()
     const int buf_size = 8;
     const char* expected_string = "56701201";
     int expected_string_len = strlen(expected_string);
-    CircularBuffer cb = CircularBufferCreate(buf_size);
+    circular_buffer_t cb = circular_buffer_create(buf_size);
 
-    CircularBufferPush(cb, chars_string, buf_size);
-    CircularBufferPop(cb, 5, NULL);
-    CircularBufferPush(cb, chars_string, 3);
+    circular_buffer_push(cb, chars_string, buf_size);
+    circular_buffer_pop(cb, 5, NULL);
+    circular_buffer_push(cb, chars_string, 3);
     // expected string here 567012
 
 
@@ -90,14 +90,14 @@ void dap_circular_test_defrag_write()
     socketpair(PF_LOCAL, SOCK_STREAM, 0, fd);
 
     // write 567012
-    int ret = CircularBufferWriteInSocket(cb, fd[0]);
+    int ret = circular_buffer_write_In_socket(cb, fd[0]);
     dap_assert(ret == 6, "Check ret write in socket");
 
     // push 01
-    CircularBufferPush(cb, chars_string, 2);
+    circular_buffer_push(cb, chars_string, 2);
 
     // write 01
-    ret = CircularBufferWriteInSocket(cb, fd[0]);
+    ret = circular_buffer_write_In_socket(cb, fd[0]);
     dap_assert(ret == 2, "Check ret write in socket");
 
     char result_buff[MAX_RESULT_BUF_LEN] = {0};
@@ -109,8 +109,8 @@ void dap_circular_test_defrag_write()
                "Check result buf");
 
     dap_pass_msg("Double write");
-    dap_assert(CircularBufferGetDataSize(cb) == 0, "Check data size");
-    CircularBufferFree(cb);
+    dap_assert(circular_buffer_get_data_size(cb) == 0, "Check data size");
+    circular_buffer_free(cb);
     close(fd[0]);
     close(fd[1]);
 }
@@ -118,9 +118,9 @@ void dap_circular_test_defrag_write()
 void dap_circular_test_write_bad_socket()
 {
     const int buf_size = 8;
-    CircularBuffer cb = CircularBufferCreate(buf_size);
+    circular_buffer_t cb = circular_buffer_create(buf_size);
 
-    CircularBufferPush(cb, chars_string, buf_size);
+    circular_buffer_push(cb, chars_string, buf_size);
 
     int fd[2];
     socketpair(PF_LOCAL, SOCK_STREAM, 0, fd);
@@ -128,10 +128,10 @@ void dap_circular_test_write_bad_socket()
     socketpair(PF_LOCAL, SOCK_STREAM, 0, fd2);
 
     close(fd[0]);
-    int ret = CircularBufferWriteInSocket(cb, fd[0]);
+    int ret = circular_buffer_write_In_socket(cb, fd[0]);
     dap_assert(ret == -1, "Check ret write in socket");
 
-    ret = CircularBufferWriteInSocket(cb, fd2[0]);
+    ret = circular_buffer_write_In_socket(cb, fd2[0]);
     dap_assert(ret == 8, "Check ret write in socket");
     char result_buff[MAX_RESULT_BUF_LEN] = {0};
     ssize_t res = read(fd2[1], result_buff, MAX_RESULT_BUF_LEN);
@@ -141,13 +141,13 @@ void dap_circular_test_write_bad_socket()
     dap_assert(dap_strn_equals(result_buff, chars_string, buf_size),
                "Check result buf");
 
-    ret = CircularBufferWriteInSocket(cb, fd2[0]);
+    ret = circular_buffer_write_In_socket(cb, fd2[0]);
     dap_assert(ret == 0, "Check zero write");
-    dap_assert(CircularBufferGetDataSize(cb) == 0, "Check data size");
+    dap_assert(circular_buffer_get_data_size(cb) == 0, "Check data size");
     close(fd[1]);
     close(fd2[0]);
     close(fd2[1]);
-    CircularBufferFree(cb);
+    circular_buffer_free(cb);
     dap_pass_msg("Test simple");
 }
 
@@ -160,7 +160,7 @@ void dap_circular_load_test()
     const char *digits = "123456789";
 
     const int buf_size = strlen(digits);
-    CircularBuffer cb = CircularBufferCreate(buf_size);
+    circular_buffer_t cb = circular_buffer_create(buf_size);
 
     int fd[2];
     socketpair(PF_LOCAL, SOCK_STREAM, 0, fd);
@@ -168,22 +168,22 @@ void dap_circular_load_test()
     int count_writed_bytes = 0;
 
     // defrag buffer
-    CircularBufferPush(cb, (void*)digits, strlen(digits));
-    CircularBufferPop(cb, strlen(digits) - 1, NULL);
-    CircularBufferPush(cb, (void*)digits, 3);
+    circular_buffer_push(cb, (void*)digits, strlen(digits));
+    circular_buffer_pop(cb, strlen(digits) - 1, NULL);
+    circular_buffer_push(cb, (void*)digits, 3);
     count_writed_bytes = 4;
 
     char expectedBuffer[MAX_RESULT_BUF_LEN];
-    CircularBufferRead(cb, count_writed_bytes, expectedBuffer);
+    circular_buffer_read(cb, count_writed_bytes, expectedBuffer);
 
     int count_write_bytes = 4;
     do {
-        int r = CircularBufferWriteInSocket(cb, fd[0]);
+        int r = circular_buffer_write_In_socket(cb, fd[0]);
         dap_assert_PIF(r == count_write_bytes, "Check write bytes");
-        dap_assert_PIF(CircularBufferGetDataSize(cb) == 0, "buf size must be 0!");
+        dap_assert_PIF(circular_buffer_get_data_size(cb) == 0, "buf size must be 0!");
 
         count_write_bytes = rand() % strlen(digits);
-        CircularBufferPush(cb, (void*)digits, count_write_bytes);
+        circular_buffer_push(cb, (void*)digits, count_write_bytes);
         strncat(expectedBuffer, digits, count_write_bytes);
         count_writed_bytes += count_write_bytes;
     } while (--iterations);
@@ -195,7 +195,7 @@ void dap_circular_load_test()
 
     dap_assert(memcmp(expectedBuffer, result_buff, res) == 0, "Check expected and result buffer");
 
-    CircularBufferFree(cb);
+    circular_buffer_free(cb);
     close(fd[0]);
     close(fd[1]);
 }
-- 
GitLab