Changeset 109 in libcf
- Timestamp:
- 06/04/13 14:25:10 (11 years ago)
- Location:
- trunk
- Files:
-
- 7 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/cf_base.h
r105 r109 33 33 34 34 /** boolean 타입 */ 35 typedef enum { 35 typedef enum 36 { 36 37 CF_FALSE = 0, /**< 거짓 */ 37 38 CF_TRUE = 1 /**< 참 */ 38 } E_CF_BOOL, 39 /** 40 * boolean 타입 41 * @see E_CF_BOOL 42 */ 43 CF_BOOL; 39 } CF_BOOL; 44 40 45 41 /** 성공 시, 반환 값 */ … … 47 43 /** 오류 코드 */ 48 44 #define CF_ERROR -1 49 50 /** 파일 이름 및 경로 길이 */51 #define NAME_LENGTH 12852 45 53 46 /** Windows 에서의 함수 EXPORT 구문 정의 */ -
trunk/include/cf_error.h
r88 r109 53 53 #define CF_ERROR_THREAD CF_ERROR_BASE * 4 54 54 /*------------------------------------------------------------*/ 55 #define CF_ERROR_THREAD_ ALLOCCF_ERROR_THREAD - 155 #define CF_ERROR_THREAD_CREATE_CTX CF_ERROR_THREAD - 1 56 56 #define CF_ERROR_THREAD_CREATE CF_ERROR_THREAD - 2 57 57 #define CF_ERROR_THREAD_INVALID_ARGS CF_ERROR_THREAD - 3 … … 76 76 #define CF_ERROR_DEBUG_POP_CALLSTACK CF_ERROR_DEBUG - 3 77 77 #define CF_ERROR_DEBUG_PEEK_CALLSTACK CF_ERROR_DEBUG - 4 78 #define CF_ERROR_DEBUG_ ALLOCATE_CTX CF_ERROR_DEBUG - 578 #define CF_ERROR_DEBUG_CREATE_CTX CF_ERROR_DEBUG - 5 79 79 /* }}} debug */ 80 80 … … 94 94 #define CF_ERROR_LOG_NOT_INITIALIZE CF_ERROR_LOG - 11 95 95 #define CF_ERROR_LOG_INVALID_ARGS CF_ERROR_LOG - 12 96 #define CF_ERROR_LOG_ ALLOCATE_CTXCF_ERROR_LOG - 1396 #define CF_ERROR_LOG_CREATE_CTX CF_ERROR_LOG - 13 97 97 #define CF_ERROR_LOG_CREATE_FILE CF_ERROR_LOG - 14 98 98 #define CF_ERROR_LOG_ALLOCATE_BUFFER CF_ERROR_LOG - 15 … … 107 107 /* }}} codec */ 108 108 109 /* data structure - list/queue/stack {{{ */ 110 #define CF_ERROR_DS CF_ERROR_BASE * 9 111 /*------------------------------------------------------------*/ 112 #define CF_ERROR_DS_INVALID_CTX CF_ERROR_DS - 1 113 #define CF_ERROR_DS_INVALID_TRAVERSER CF_ERROR_DS - 2 114 #define CF_ERROR_DS_INVALID_ARGS CF_ERROR_DS - 3 115 #define CF_ERROR_DS_CREATE_CTX CF_ERROR_DS - 4 116 #define CF_ERROR_DS_CREATE_NODE CF_ERROR_DS - 5 117 #define CF_ERROR_DS_NO_MORE CF_ERROR_DS - 6 118 /* }}} data structure - list/queue/stack */ 109 119 110 120 #endif // #ifndef __CF_ERROR_H__ -
trunk/include/cf_file.h
r94 r109 15 15 16 16 /** 파일 열기 옵션 플래그 */ 17 typedef enum { 17 typedef enum 18 { 18 19 CF_FILE_READ = 0x0001, /**< 읽기 전용 */ 19 20 CF_FILE_WRITE = 0x0002, /**< 쓰기 전용 */ … … 22 23 CF_FILE_TRUNC = 0x0010, /**< 파일이 존재하면 비우기 */ 23 24 CF_FILE_APPEND = 0x0020 /**< 파일이 존재하면 이어서 쓰기 */ 24 } E_CF_FILE_FLAG,CF_FILE_FLAG;25 } CF_FILE_FLAG; 25 26 26 27 #ifdef __cplusplus … … 51 52 CF_File_GetSize (const char * path); 52 53 54 CF_EXPORT CF_BOOL 55 CF_File_Exists (const char * path); 56 53 57 CF_EXPORT int 54 58 CF_File_MakeDirectory (const char * path); -
trunk/include/cf_log.h
r108 r109 15 15 16 16 /** 로그 옵션 플래그 */ 17 typedef enum { 17 typedef enum 18 { 18 19 CF_LOG_DEFAULT_BUFFER = -1, /**< 기본 버퍼 크기 사용 */ 19 20 CF_LOG_NO_BUFFER = 0, /**< 버퍼없이 파일에 바로 쓰기 */ 20 } E_CF_LOG_OPTION,CF_LOG_OPTION;21 } CF_LOG_OPTION; 21 22 22 23 #ifdef __cplusplus -
trunk/include/cf_socket.h
r73 r109 5 5 * @remark TCP 소켓 지원 6 6 * 7 * @example socket_server.c 8 * @example socket_client.c 7 * @example socket.c 9 8 */ 10 9 #ifndef __CF_SOCKET_H__ … … 63 62 64 63 CF_EXPORT int 65 CF_Socket_Send (const int sock,66 const void * buf,67 const int len);64 CF_Socket_Send (const int sock, 65 const void * buf, 66 const size_t len); 68 67 69 68 CF_EXPORT int 70 CF_Socket_SendTimeout (const int sock,71 const void * buf,72 const int len,73 const int timeout);69 CF_Socket_SendTimeout (const int sock, 70 const void * buf, 71 const size_t len, 72 const int timeout); 74 73 75 74 CF_EXPORT int 76 CF_Socket_Recv (const int sock,77 void * buf,78 const int len);75 CF_Socket_Recv (const int sock, 76 void * buf, 77 const size_t len); 79 78 80 79 CF_EXPORT int 81 CF_Socket_RecvTimeout (const int sock,82 void * buf,83 const int len,84 const int timeout);80 CF_Socket_RecvTimeout (const int sock, 81 void * buf, 82 const size_t len, 83 const int timeout); 85 84 86 85 #ifdef __cplusplus -
trunk/include/cf_thread.h
r66 r109 16 16 17 17 /** 스레드 아이디 */ 18 typedef void * CF_Thread ;18 typedef void * CF_Thread_Ctx; 19 19 20 20 /** 뮤텍스 아이디 */ 21 typedef void * CF_Mutex ;21 typedef void * CF_Mutex_Ctx; 22 22 23 23 #ifdef __cplusplus … … 26 26 27 27 CF_EXPORT int 28 CF_Thread_Create (CF_Thread* threadID,29 CF_Thread_Function callback,30 void * arg);28 CF_Thread_CreateCtx (CF_Thread_Ctx * threadID, 29 CF_Thread_Function callback, 30 void * arg); 31 31 32 32 CF_EXPORT int 33 CF_Thread_ Release (CF_Thread* threadID);33 CF_Thread_DestroyCtx (CF_Thread_Ctx * threadID); 34 34 35 35 CF_EXPORT int 36 CF_Thread_Join (CF_Thread* threadID);36 CF_Thread_Join (CF_Thread_Ctx * threadID); 37 37 38 38 CF_EXPORT int 39 CF_Mutex_Create (CF_Mutex * mutex);39 CF_Mutex_CreateCtx (CF_Mutex_Ctx * mutex); 40 40 41 41 CF_EXPORT int 42 CF_Mutex_Destory (CF_Mutex * mutex);42 CF_Mutex_DestoryCtx (CF_Mutex_Ctx * mutex); 43 43 44 44 CF_EXPORT int 45 CF_Mutex_Lock (CF_Mutex * mutex);45 CF_Mutex_Lock (CF_Mutex_Ctx * mutex); 46 46 47 47 CF_EXPORT int 48 CF_Mutex_Unlock (CF_Mutex * mutex);48 CF_Mutex_Unlock (CF_Mutex_Ctx * mutex); 49 49 50 50 #ifdef __cplusplus -
trunk/src/cf_debug.c
r107 r109 25 25 return CF_ERROR_DEBUG_INVALID_CTX 26 26 27 /** 28 * 디버그 컨텍스트 29 * 30 * @remark change from public to private 31 */ 27 /** 디버그 컨텍스트 (Opaque) */ 32 28 typedef void * CF_Debug_Ctx; 33 29 34 /* * 35 * 콜스택 데이터 36 * 37 * @remark change from public to private 38 */ 30 /** 콜스택 인터페이스 */ 39 31 typedef struct cf_debug_callStack { 40 32 char file[NAME_LENGTH + 1]; /* *< 파일 이름 */ … … 43 35 } CF_Debug_CallStack; 44 36 37 /** 콜스택 컨텍스트 */ 45 38 typedef struct __cf_debug_callstack__ 46 39 { … … 52 45 53 46 struct __cf_debug_callstack__ * caller; 54 } S_CF_DEBUG_CALLSTACK, CF_DEBUG_CALLSTACK; 55 47 } CF_DEBUG_CALLSTACK; 48 49 /** 디버그 컨텍스트 (CF_Debug_Ctx의 구현) */ 56 50 typedef struct __cf_debug_ctx__ 57 51 { 58 char file[NAME_LENGTH + 1]; 59 char func[NAME_LENGTH + 1]; 60 int line; 61 62 CF_Mutex mutex; 52 int fd; 53 CF_Mutex_Ctx mutex; 63 54 64 55 CF_DEBUG_CALLSTACK callstack; 65 } S_CF_DEBUG_CTX,CF_DEBUG_CTX;56 } CF_DEBUG_CTX; 66 57 67 58 CF_Debug_Ctx gDebugSingleCtx = NULL; 68 69 static int70 CF_Debug_Local_UpdateCtx (CF_Debug_Ctx ctx,71 const char * file,72 const char * func,73 const int line)74 {75 CF_DEBUG_CTX * context = (CF_DEBUG_CTX *) ctx;76 77 ASSERT_CTX (ctx);78 79 strncpy (context->file, file, strlen (file));80 strncpy (context->func, func, strlen (func));81 context->line = line;82 83 return CF_OK;84 }85 59 86 60 static int … … 232 206 context->callstack.caller = push; 233 207 234 CF_Debug_Local_UpdateCtx (ctx, file, func, line);235 236 208 return CF_OK; 237 209 } … … 294 266 return CF_ERROR_DEBUG_PEEK_CALLSTACK; 295 267 296 memset (context->file, 0x00, sizeof (context->file));297 memset (context->func, 0x00, sizeof (context->func));298 context->line = 0;299 300 /* restore current context */301 if (pop->caller != NULL)302 {303 CF_Debug_Local_UpdateCtx (ctx,304 pop->caller->file,305 pop->caller->func,306 pop->caller->line);307 }308 309 268 context->callstack.caller = pop->caller; 310 269 free (pop); … … 333 292 334 293 if (context->mutex) 335 CF_Mutex_Destory (&context->mutex);294 CF_Mutex_DestoryCtx (&context->mutex); 336 295 337 296 free (context); … … 357 316 if (context == NULL) 358 317 { 359 result = CF_ERROR_DEBUG_ ALLOCATE_CTX;318 result = CF_ERROR_DEBUG_CREATE_CTX; 360 319 TRY_BREAK; 361 320 } 362 321 363 result = CF_Mutex_Create (&context->mutex);322 result = CF_Mutex_CreateCtx (&context->mutex); 364 323 if (result < 0) 365 324 { -
trunk/src/cf_file.c
r95 r109 219 219 220 220 /** 221 * 파일 및 디렉터리 존재 여부 검사 222 * 223 * @return 존재 시, CF_TRUE; 아니면, CF_FALSE 224 * 225 * @param path 파일 및 디렉터리 경로 226 */ 227 CF_BOOL 228 CF_File_Exists (const char * path) 229 { 230 return (access (path, F_OK) == 0) ? CF_TRUE : CF_FALSE; 231 } 232 233 /** 221 234 * 디렉터리 생성 222 235 * … … 244 257 continue; 245 258 246 if ( access (stepPath, F_OK) == 0)259 if (CF_File_Exists (stepPath)) 247 260 continue; 248 261 -
trunk/src/cf_local.h
r66 r109 6 6 #define __CF_LOCAL_H__ 7 7 8 /** 파일 이름 및 경로 길이 */ 9 #define NAME_LENGTH 128 10 11 /** 예외 처리 */ 8 12 #define TRY do 9 13 #define TRY_BREAK break … … 13 17 #define CATCH_ELSE else 14 18 19 /** non-compatible function */ 15 20 #if defined(_WIN32) || defined(_WIN64) 16 21 # define snprintf _snprintf -
trunk/src/cf_log.c
r108 r109 57 57 #define LOG_DATETIME_LENGTH sizeof ("0000-00-00 00:00:00.000") - 1 58 58 59 /** 60 * 로그 컨텍스트 61 * 62 * @remark change from public to private 63 */ 59 /** 로그 컨텍스트 (Opaque) */ 64 60 typedef void * CF_Log_Ctx; 65 61 … … 75 71 int sec; 76 72 int usec; 77 } S_CF_LOG_DATETIME, CF_LOG_DATETIME; 78 73 } CF_LOG_DATETIME; 74 75 /** 로그 컨텍스트 (CF_Log_Ctx의 구현) */ 79 76 typedef struct __cf_log_ctx__ { 80 char path[NAME_LENGTH + 1];81 int fd;82 char * buffer;83 size_t size; /* entire size of buffer */84 size_t length; /* data length in current */85 CF_Mutex mutex;86 } S_CF_LOG_CTX,CF_LOG_CTX;77 char path[NAME_LENGTH + 1]; 78 int fd; 79 char * buffer; 80 size_t size; /* entire size of buffer */ 81 size_t length; /* data length in current */ 82 CF_Mutex_Ctx mutex; 83 } CF_LOG_CTX; 87 84 88 85 typedef struct __cf_log_array__ { 89 86 CF_Log_Ctx * ctxPool; 90 87 int ctxSize; 91 } S_CF_LOG_ARRAY,CF_LOG_ARRAY;88 } CF_LOG_ARRAY; 92 89 93 90 static CF_LOG_ARRAY gLogArray; … … 257 254 ASSERT_CTX (ctx); 258 255 259 if (CF_Mutex_Create (&context->mutex) < 0)256 if (CF_Mutex_CreateCtx (&context->mutex) < 0) 260 257 return CF_ERROR_LOG_SET_MULTITHREAD; 261 258 … … 279 276 ASSERT_CTX (ctx); 280 277 281 if (CF_Mutex_Destory (&context->mutex) < 0)278 if (CF_Mutex_DestoryCtx (&context->mutex) < 0) 282 279 return CF_ERROR_LOG_UNSET_MULTITHREAD; 283 280 … … 371 368 CF_File_Close (context->fd); 372 369 373 CF_Mutex_Destory (&context->mutex);370 CF_Mutex_DestoryCtx (&context->mutex); 374 371 context->mutex = NULL; 375 372 … … 409 406 if (context == NULL) 410 407 { 411 result = CF_ERROR_LOG_ ALLOCATE_CTX;408 result = CF_ERROR_LOG_CREATE_CTX; 412 409 TRY_BREAK; 413 410 } -
trunk/src/cf_socket.c
r104 r109 510 510 */ 511 511 int 512 CF_Socket_Send (const int sock,513 const void * buf,514 const int len)512 CF_Socket_Send (const int sock, 513 const void * buf, 514 const size_t len) 515 515 { 516 516 return CF_Socket_SendTimeout (sock, buf, len, CF_SOCKET_NO_TIMEOUT); … … 532 532 CF_Socket_SendTimeout (const int sock, 533 533 const void * buf, 534 const int len,534 const size_t len, 535 535 const int timeout) 536 536 { … … 539 539 ASSERT_SOCKET (sock); 540 540 541 result = (int) send (sock, buf, (size_t)len, 0);541 result = (int) send (sock, buf, len, 0); 542 542 if (result != len) 543 543 return CF_ERROR_SOCKET_SEND; … … 556 556 */ 557 557 int 558 CF_Socket_Recv (const int sock,559 void * buf,560 const int len)558 CF_Socket_Recv (const int sock, 559 void * buf, 560 const size_t len) 561 561 { 562 562 return CF_Socket_RecvTimeout (sock, buf, len, CF_SOCKET_NO_TIMEOUT); … … 578 578 CF_Socket_RecvTimeout (const int sock, 579 579 void * buf, 580 const int len,580 const size_t len, 581 581 const int timeout) 582 582 { … … 589 589 return result; 590 590 591 result = (int) recv (sock, buf, (size_t)len, 0);591 result = (int) recv (sock, buf, len, 0); 592 592 if (result < 0) 593 593 return CF_ERROR_SOCKET_RECV; -
trunk/src/cf_thread.c
r85 r109 65 65 */ 66 66 int 67 CF_Thread_Create (CF_Thread* threadID,68 69 void* arg)67 CF_Thread_CreateCtx (CF_Thread_Ctx * threadID, 68 CF_Thread_Function callback, 69 void * arg) 70 70 { 71 71 int result = 0; … … 106 106 *threadID = (THREAD_TYPE *) calloc (sizeof (THREAD_TYPE), 1); 107 107 if (*threadID == NULL) 108 return CF_ERROR_THREAD_ ALLOC;108 return CF_ERROR_THREAD_CREATE_CTX; 109 109 110 110 result = pthread_create ((THREAD_TYPE *) *threadID, attr, f, arg); 111 111 if (result) 112 112 { 113 CF_Thread_ Release(threadID);113 CF_Thread_DestroyCtx (threadID); 114 114 return CF_ERROR_THREAD_CREATE; 115 115 } … … 129 129 */ 130 130 int 131 CF_Thread_ Release (CF_Thread* threadID)131 CF_Thread_DestroyCtx (CF_Thread_Ctx * threadID) 132 132 { 133 133 ASSERT_THREAD (*threadID); … … 144 144 */ 145 145 int 146 CF_Thread_Join (CF_Thread * threadID)146 CF_Thread_Join (CF_Thread_Ctx * threadID) 147 147 { 148 148 ASSERT_THREAD (*threadID); … … 168 168 */ 169 169 int 170 CF_Mutex_Create (CF_Mutex * mutex)170 CF_Mutex_CreateCtx (CF_Mutex_Ctx * mutex) 171 171 { 172 172 int result = 0; … … 197 197 */ 198 198 int 199 CF_Mutex_Destory (CF_Mutex * mutex)199 CF_Mutex_DestoryCtx (CF_Mutex_Ctx * mutex) 200 200 { 201 201 ASSERT_MUTEX (*mutex); … … 216 216 */ 217 217 int 218 CF_Mutex_Lock (CF_Mutex * mutex)218 CF_Mutex_Lock (CF_Mutex_Ctx * mutex) 219 219 { 220 220 ASSERT_MUTEX (*mutex); … … 237 237 */ 238 238 int 239 CF_Mutex_Unlock (CF_Mutex * mutex)239 CF_Mutex_Unlock (CF_Mutex_Ctx * mutex) 240 240 { 241 241 ASSERT_MUTEX (*mutex); -
trunk/src/makefile
r83 r109 15 15 cf_log \ 16 16 cf_codec \ 17 cf_list \ 18 cf_queue \ 19 cf_stack \ 17 20 18 21 TARGET_NAME = cf -
trunk/test/log.c
r108 r109 9 9 #include <stdio.h> 10 10 11 CF_Mutex globalMutex;11 CF_Mutex_Ctx globalMutex; 12 12 13 13 #define LOG_MT 1 … … 41 41 int main (void) 42 42 { 43 int i, j;44 char idname[16] = {0x00,};45 CF_Thread tid[10];43 int i, j; 44 char idname[16] = {0x00,}; 45 CF_Thread_Ctx tid[10]; 46 46 47 47 /* initialize */ … … 79 79 CF_DEBUG_PRINT (stderr, "set multi-threading mode error\n"); 80 80 81 if (CF_Mutex_Create (&globalMutex) < 0) {81 if (CF_Mutex_CreateCtx (&globalMutex) < 0) { 82 82 // error 83 83 } … … 85 85 for (i = 0 ; i < 10 ; i++) 86 86 { 87 if (CF_Thread_Create (&tid[i], test_log_mt, &i) < 0)87 if (CF_Thread_CreateCtx (&tid[i], test_log_mt, &i) < 0) 88 88 { 89 89 CF_DEBUG_PRINT (stderr, "failed to create %dth thread\n", i); … … 96 96 if (CF_Thread_Join (&tid[i]) < 0) 97 97 CF_DEBUG_PRINT (stderr, "failed to join %dth thread\n", i); 98 if (CF_Thread_ Release(&tid[i]) < 0)98 if (CF_Thread_DestroyCtx (&tid[i]) < 0) 99 99 CF_DEBUG_PRINT (stderr, "failed to release %dth thread\n", i); 100 100 } 101 101 102 if (CF_Mutex_Destory (&globalMutex) < 0) {102 if (CF_Mutex_DestoryCtx (&globalMutex) < 0) { 103 103 // error 104 104 } -
trunk/test/socket.c
r108 r109 39 39 CF_DEBUG_PRINT (stderr, "[SERVER] recv {%s}\n", buf); 40 40 41 if (CF_Socket_Send (clntsock, buf, recvd) < 0)41 if (CF_Socket_Send (clntsock, buf, (size_t)recvd) < 0) 42 42 { 43 43 return -3; … … 100 100 int main () 101 101 { 102 CF_Thread stid[THREAD_POOL];103 CF_Thread ctid[THREAD_POOL];102 CF_Thread_Ctx stid[THREAD_POOL]; 103 CF_Thread_Ctx ctid[THREAD_POOL]; 104 104 105 105 int sock = 0; … … 135 135 for (iter = 0 ; iter < THREAD_POOL ; iter++) 136 136 { 137 if (CF_Thread_Create (&stid[iter], socket_echo_server, &sock) < 0)137 if (CF_Thread_CreateCtx (&stid[iter], socket_echo_server, &sock) < 0) 138 138 { 139 139 CF_DEBUG_PRINT (stderr, "failed to create %dth thread\n", iter); … … 145 145 for (iter = 0 ; iter < THREAD_POOL ; iter++) 146 146 { 147 if (CF_Thread_Create (&ctid[iter], socket_echo_client, &sock) < 0)147 if (CF_Thread_CreateCtx (&ctid[iter], socket_echo_client, &sock) < 0) 148 148 { 149 149 CF_DEBUG_PRINT (stderr, "failed to create %dth thread\n", iter); … … 156 156 { 157 157 CF_Thread_Join (&ctid[iter]); 158 CF_Thread_ Release(&ctid[iter]);158 CF_Thread_DestroyCtx (&ctid[iter]); 159 159 160 160 CF_Thread_Join (&stid[iter]); 161 CF_Thread_ Release(&stid[iter]);161 CF_Thread_DestroyCtx (&stid[iter]); 162 162 163 163 CF_Log_Write (LOG_SOCKET, "SOCKET", "join server thread-%d\n", iter); -
trunk/test/thread.c
r66 r109 7 7 #include <stdio.h> 8 8 9 CF_Mutex globalMutex;9 CF_Mutex_Ctx globalMutex; 10 10 11 11 int worker (void * arg) { … … 24 24 25 25 int main (void) { 26 CF_Thread tid[10];26 CF_Thread_Ctx tid[10]; 27 27 int i = 0; 28 28 29 if (CF_Mutex_Create (&globalMutex) < 0) {29 if (CF_Mutex_CreateCtx (&globalMutex) < 0) { 30 30 // error 31 31 } 32 32 33 33 for (i = 0 ; i < 10 ; i++) { 34 if (CF_Thread_Create (&tid[i], worker, NULL) < 0) {34 if (CF_Thread_CreateCtx (&tid[i], worker, NULL) < 0) { 35 35 // error 36 36 } … … 44 44 45 45 for (i = 0 ; i < 10 ; i++) { 46 if (CF_Thread_ Release(&tid[i]) < 0) {46 if (CF_Thread_DestroyCtx (&tid[i]) < 0) { 47 47 // error 48 48 } 49 49 } 50 50 51 if (CF_Mutex_Destory (&globalMutex) < 0) {51 if (CF_Mutex_DestoryCtx (&globalMutex) < 0) { 52 52 // error 53 53 } -
trunk/windows/libcf/libcf.vcproj
r68 r109 188 188 </File> 189 189 <File 190 RelativePath="..\..\src\cf_list.c" 191 > 192 </File> 193 <File 190 194 RelativePath="..\..\src\cf_local.h" 191 195 > … … 196 200 </File> 197 201 <File 202 RelativePath="..\..\src\cf_queue.c" 203 > 204 </File> 205 <File 198 206 RelativePath="..\..\src\cf_socket.c" 207 > 208 </File> 209 <File 210 RelativePath="..\..\src\cf_stack.c" 199 211 > 200 212 </File> -
trunk/windows/test/test.vcproj
r105 r109 186 186 </File> 187 187 <File 188 RelativePath="..\..\test\list.c" 189 > 190 </File> 191 <File 188 192 RelativePath="..\..\test\log.c" 189 193 > 190 194 </File> 191 195 <File 196 RelativePath="..\..\test\queue.c" 197 > 198 </File> 199 <File 192 200 RelativePath="..\..\test\socket.c" 201 > 202 </File> 203 <File 204 RelativePath="..\..\test\stack.c" 193 205 > 194 206 </File>
Note:
See TracChangeset
for help on using the changeset viewer.