| 106 |
static BOOL FileLog = FALSE; |
static BOOL FileLog = FALSE; |
| 107 |
static BOOL BinLog = FALSE; |
static BOOL BinLog = FALSE; |
| 108 |
|
|
| 109 |
|
static PCHAR cv_LogBuf; |
| 110 |
|
static int cv_LogPtr, cv_LStart, cv_LCount; |
| 111 |
|
static PCHAR cv_BinBuf; |
| 112 |
|
static int cv_BinPtr, cv_BStart, cv_BCount; |
| 113 |
|
static int cv_BinSkip; |
| 114 |
|
|
| 115 |
// 遅延書き込み用スレッドのメッセージ |
// 遅延書き込み用スレッドのメッセージ |
| 116 |
#define WM_DPC_LOGTHREAD_SEND (WM_APP + 1) |
#define WM_DPC_LOGTHREAD_SEND (WM_APP + 1) |
| 117 |
|
|
| 709 |
return FALSE; |
return FALSE; |
| 710 |
} |
} |
| 711 |
} |
} |
| 712 |
cv.LStart = cv.LogPtr; |
cv_LStart = cv_LogPtr; |
| 713 |
cv.LCount = 0; |
cv_LCount = 0; |
| 714 |
|
|
| 715 |
OpenLogFile(fv); |
OpenLogFile(fv); |
| 716 |
if (LogVar->FileHandle == INVALID_HANDLE_VALUE) { |
if (LogVar->FileHandle == INVALID_HANDLE_VALUE) { |
| 809 |
*/ |
*/ |
| 810 |
void LogPut1(BYTE b) |
void LogPut1(BYTE b) |
| 811 |
{ |
{ |
| 812 |
cv.LogBuf[cv.LogPtr] = b; |
cv_LogBuf[cv_LogPtr] = b; |
| 813 |
cv.LogPtr++; |
cv_LogPtr++; |
| 814 |
if (cv.LogPtr>=InBuffSize) |
if (cv_LogPtr>=InBuffSize) |
| 815 |
cv.LogPtr = cv.LogPtr-InBuffSize; |
cv_LogPtr = cv_LogPtr-InBuffSize; |
| 816 |
|
|
| 817 |
if (FileLog) |
if (FileLog) |
| 818 |
{ |
{ |
| 819 |
if (cv.LCount>=InBuffSize) |
if (cv_LCount>=InBuffSize) |
| 820 |
{ |
{ |
| 821 |
cv.LCount = InBuffSize; |
cv_LCount = InBuffSize; |
| 822 |
cv.LStart = cv.LogPtr; |
cv_LStart = cv_LogPtr; |
| 823 |
} |
} |
| 824 |
else |
else |
| 825 |
cv.LCount++; |
cv_LCount++; |
| 826 |
} |
} |
| 827 |
else |
else |
| 828 |
cv.LCount = 0; |
cv_LCount = 0; |
| 829 |
} |
} |
| 830 |
|
|
| 831 |
static BOOL Get1(PCHAR Buf, int *Start, int *Count, PBYTE b) |
static BOOL Get1(PCHAR Buf, int *Start, int *Count, PBYTE b) |
| 942 |
|
|
| 943 |
if (FileLog) |
if (FileLog) |
| 944 |
{ |
{ |
| 945 |
Buf = cv.LogBuf; |
Buf = cv_LogBuf; |
| 946 |
Start = cv.LStart; |
Start = cv_LStart; |
| 947 |
Count = cv.LCount; |
Count = cv_LCount; |
| 948 |
} |
} |
| 949 |
else if (BinLog) |
else if (BinLog) |
| 950 |
{ |
{ |
| 951 |
Buf = cv.BinBuf; |
Buf = cv_BinBuf; |
| 952 |
Start = cv.BStart; |
Start = cv_BStart; |
| 953 |
Count = cv.BCount; |
Count = cv_BCount; |
| 954 |
} |
} |
| 955 |
else |
else |
| 956 |
return; |
return; |
| 1065 |
|
|
| 1066 |
if (FileLog) |
if (FileLog) |
| 1067 |
{ |
{ |
| 1068 |
cv.LStart = Start; |
cv_LStart = Start; |
| 1069 |
cv.LCount = Count; |
cv_LCount = Count; |
| 1070 |
} |
} |
| 1071 |
else { |
else { |
| 1072 |
cv.BStart = Start; |
cv_BStart = Start; |
| 1073 |
cv.BCount = Count; |
cv_BCount = Count; |
| 1074 |
} |
} |
| 1075 |
if (FLogIsPause() || cv.ProtoFlag) return; |
if (FLogIsPause() || cv.ProtoFlag) return; |
| 1076 |
LogVar->FLogDlg->RefreshNum(LogVar->StartTime, LogVar->FileSize, LogVar->ByteCount); |
LogVar->FLogDlg->RefreshNum(LogVar->StartTime, LogVar->FileSize, LogVar->ByteCount); |
| 1082 |
|
|
| 1083 |
static BOOL CreateLogBuf(void) |
static BOOL CreateLogBuf(void) |
| 1084 |
{ |
{ |
| 1085 |
if (cv.HLogBuf==NULL) |
if (cv_LogBuf==NULL) |
| 1086 |
{ |
{ |
| 1087 |
cv.HLogBuf = GlobalAlloc(GMEM_MOVEABLE,InBuffSize); |
cv_LogBuf = (char *)malloc(InBuffSize); |
| 1088 |
cv.LogBuf = NULL; |
cv_LogPtr = 0; |
| 1089 |
cv.LogPtr = 0; |
cv_LStart = 0; |
| 1090 |
cv.LStart = 0; |
cv_LCount = 0; |
|
cv.LCount = 0; |
|
| 1091 |
} |
} |
| 1092 |
return (cv.HLogBuf!=NULL); |
return (cv_LogBuf!=NULL); |
| 1093 |
} |
} |
| 1094 |
|
|
| 1095 |
static void FreeLogBuf(void) |
static void FreeLogBuf(void) |
| 1096 |
{ |
{ |
| 1097 |
if ((cv.HLogBuf==NULL) || FileLog) |
free(cv_LogBuf); |
| 1098 |
return; |
cv_LogBuf = NULL; |
| 1099 |
if (cv.LogBuf!=NULL) |
cv_LogPtr = 0; |
| 1100 |
GlobalUnlock(cv.HLogBuf); |
cv_LStart = 0; |
| 1101 |
GlobalFree(cv.HLogBuf); |
cv_LCount = 0; |
|
cv.HLogBuf = NULL; |
|
|
cv.LogBuf = NULL; |
|
|
cv.LogPtr = 0; |
|
|
cv.LStart = 0; |
|
|
cv.LCount = 0; |
|
| 1102 |
} |
} |
| 1103 |
|
|
| 1104 |
static BOOL CreateBinBuf(void) |
static BOOL CreateBinBuf(void) |
| 1105 |
{ |
{ |
| 1106 |
if (cv.HBinBuf==NULL) |
if (cv_BinBuf==NULL) |
| 1107 |
{ |
{ |
| 1108 |
cv.HBinBuf = GlobalAlloc(GMEM_MOVEABLE,InBuffSize); |
cv_BinBuf = (PCHAR)malloc(InBuffSize); |
| 1109 |
cv.BinBuf = NULL; |
cv_BinPtr = 0; |
| 1110 |
cv.BinPtr = 0; |
cv_BStart = 0; |
| 1111 |
cv.BStart = 0; |
cv_BCount = 0; |
|
cv.BCount = 0; |
|
| 1112 |
} |
} |
| 1113 |
return (cv.HBinBuf!=NULL); |
return (cv_BinBuf!=NULL); |
| 1114 |
} |
} |
| 1115 |
|
|
| 1116 |
static void FreeBinBuf(void) |
static void FreeBinBuf(void) |
| 1117 |
{ |
{ |
| 1118 |
if ((cv.HBinBuf==NULL) || BinLog) |
free(cv_BinBuf); |
| 1119 |
return; |
cv_BinBuf = NULL; |
| 1120 |
if (cv.BinBuf!=NULL) |
cv_BinPtr = 0; |
| 1121 |
GlobalUnlock(cv.HBinBuf); |
cv_BStart = 0; |
| 1122 |
GlobalFree(cv.HBinBuf); |
cv_BCount = 0; |
|
cv.HBinBuf = NULL; |
|
|
cv.BinBuf = NULL; |
|
|
cv.BinPtr = 0; |
|
|
cv.BStart = 0; |
|
|
cv.BCount = 0; |
|
| 1123 |
} |
} |
| 1124 |
|
|
| 1125 |
static void FileTransEnd_(void) |
static void FileTransEnd_(void) |
| 1469 |
if (LogVar->IsPause || cv.ProtoFlag) { |
if (LogVar->IsPause || cv.ProtoFlag) { |
| 1470 |
return; |
return; |
| 1471 |
} |
} |
| 1472 |
if (cv.BinSkip > 0) { |
if (cv_BinSkip > 0) { |
| 1473 |
cv.BinSkip--; |
cv_BinSkip--; |
| 1474 |
return; |
return; |
| 1475 |
} |
} |
| 1476 |
cv.BinBuf[cv.BinPtr] = b; |
cv_BinBuf[cv_BinPtr] = b; |
| 1477 |
cv.BinPtr++; |
cv_BinPtr++; |
| 1478 |
if (cv.BinPtr>=InBuffSize) { |
if (cv_BinPtr>=InBuffSize) { |
| 1479 |
cv.BinPtr = cv.BinPtr-InBuffSize; |
cv_BinPtr = cv_BinPtr-InBuffSize; |
| 1480 |
} |
} |
| 1481 |
if (cv.BCount>=InBuffSize) { |
if (cv_BCount>=InBuffSize) { |
| 1482 |
cv.BCount = InBuffSize; |
cv_BCount = InBuffSize; |
| 1483 |
cv.BStart = cv.BinPtr; |
cv_BStart = cv_BinPtr; |
| 1484 |
} |
} |
| 1485 |
else { |
else { |
| 1486 |
cv.BCount++; |
cv_BCount++; |
| 1487 |
} |
} |
| 1488 |
} |
} |
| 1489 |
|
|
| 1490 |
static void LogBinSkip(int add) |
static void LogBinSkip(int add) |
| 1491 |
{ |
{ |
| 1492 |
if (cv.HBinBuf!=0 ) { |
if (cv_BinBuf != NULL) { |
| 1493 |
cv.BinSkip += add; |
cv_BinSkip += add; |
| 1494 |
} |
} |
| 1495 |
} |
} |
| 1496 |
|
|
| 1500 |
int FLogGetCount(void) |
int FLogGetCount(void) |
| 1501 |
{ |
{ |
| 1502 |
if (FileLog) { |
if (FileLog) { |
| 1503 |
return cv.LCount; |
return cv_LCount; |
| 1504 |
} |
} |
| 1505 |
if (BinLog) { |
if (BinLog) { |
| 1506 |
return cv.BCount; |
return cv_BCount; |
| 1507 |
|
} |
| 1508 |
|
return 0; |
| 1509 |
|
} |
| 1510 |
|
|
| 1511 |
|
/** |
| 1512 |
|
* ログバッファの空きバイト数を返す |
| 1513 |
|
*/ |
| 1514 |
|
int FLogGetFreeCount(void) |
| 1515 |
|
{ |
| 1516 |
|
if (FileLog) { |
| 1517 |
|
return InBuffSize - cv_LCount; |
| 1518 |
|
} |
| 1519 |
|
if (BinLog) { |
| 1520 |
|
return InBuffSize - cv_BCount; |
| 1521 |
} |
} |
| 1522 |
return 0; |
return 0; |
| 1523 |
} |
} |
| 1527 |
*/ |
*/ |
| 1528 |
void FLogWriteFile(void) |
void FLogWriteFile(void) |
| 1529 |
{ |
{ |
| 1530 |
if (cv.LogBuf!=NULL) |
if (cv_LogBuf!=NULL) |
| 1531 |
{ |
{ |
| 1532 |
if (FileLog) { |
if (FileLog) { |
| 1533 |
LogToFile(); |
LogToFile(); |
| 1534 |
} |
} |
|
GlobalUnlock(cv.HLogBuf); |
|
|
cv.LogBuf = NULL; |
|
| 1535 |
} |
} |
| 1536 |
|
|
| 1537 |
if (cv.BinBuf!=NULL) |
if (cv_BinBuf!=NULL) |
| 1538 |
{ |
{ |
| 1539 |
if (BinLog) { |
if (BinLog) { |
| 1540 |
LogToFile(); |
LogToFile(); |
| 1541 |
} |
} |
| 1542 |
GlobalUnlock(cv.HBinBuf); |
// GlobalUnlock(cv_HBinBuf); |
| 1543 |
cv.BinBuf = NULL; |
// cv_BinBuf = NULL; |
| 1544 |
} |
} |
| 1545 |
} |
} |
| 1546 |
|
|
| 1548 |
{ |
{ |
| 1549 |
PFileVar fv = LogVar; |
PFileVar fv = LogVar; |
| 1550 |
size_t i; |
size_t i; |
| 1551 |
BOOL log_available = (cv.HLogBuf != 0); |
BOOL log_available = (cv_LogBuf != 0); |
| 1552 |
|
|
| 1553 |
if (!log_available) { |
if (!log_available) { |
| 1554 |
// ログには出力しない |
// ログには出力しない |
| 1591 |
void FLogOutputBOM(void) |
void FLogOutputBOM(void) |
| 1592 |
{ |
{ |
| 1593 |
PFileVar fv = LogVar; |
PFileVar fv = LogVar; |
|
BOOL needs_unlock = FALSE; |
|
|
|
|
|
if ((cv.HLogBuf!=NULL) && (cv.LogBuf==NULL)) { |
|
|
cv.LogBuf = (PCHAR)GlobalLock(cv.HLogBuf); |
|
|
needs_unlock = TRUE; |
|
|
} |
|
| 1594 |
|
|
| 1595 |
switch(fv->log_code) { |
switch(fv->log_code) { |
| 1596 |
case 0: |
case 0: |
| 1612 |
default: |
default: |
| 1613 |
break; |
break; |
| 1614 |
} |
} |
|
|
|
|
if (needs_unlock) { |
|
|
GlobalUnlock(cv.HLogBuf); |
|
|
cv.LogBuf = NULL; |
|
|
} |
|
| 1615 |
} |
} |
| 1616 |
|
|
| 1617 |
void FLogSetCode(int code) |
void FLogSetCode(int code) |