This commit is contained in:
biosvos
2026-08-07 17:38:18 +09:00
commit 873193a243
9613 changed files with 2755992 additions and 0 deletions
+100
View File
@@ -0,0 +1,100 @@
/****************************************************************************
fimngd 와 data 송수신을 담당할 socket class
-----------------------------------------
begin : 2015/08/27
copyright : (C) 2005 Solbox Inc.
author : Dev Storage Team
email : huibong@solbox.com
version : 3.5
CopyRight(C) 2005 Solbox Inc. All Rights reserved.
Redistribution and use in source and binary forms, with or with out
modification, are not permitted in outside of Solbox Inc.
*****************************************************************************/
#ifndef __SOCKET_FIMNGD_H__
#define __SOCKET_FIMNGD_H__
#include "BaseSocket.h"
#include "ProtocolFimngd.h"
#include <vector>
// fimngd 로 부터 수신된 각 서비스별 network 통계 정보를 저장하기 위한 구조체
struct ServiceNetworkStat {
char hostname[FIMNGD_HOST_NAME_MAX_LENGTH + 1]; // hostname, 최대 63자까지만 허용.
uint32_t timestamp; // timestamp
int user_seq; // user sequence
int svc_seq; // service sequence
uint64_t down_content_size; // download content size
uint64_t up_content_size; // upload content size
uint64_t down_traffic; // download packet size
uint64_t up_traffic; // upload packet size
};
// CSocketFimngd
// fimngd 와 TCP 통신 및 data 송수신을 담당할 class.
class CSocketFimngd : public CBaseSocket
{
public:
// 생성자
// param [in] clientSocket client 와 통신 연결된 socket.
CSocketFimngd( int clientSocket );
// 소멸자
~CSocketFimngd();
private:
// Packet Header 변수
struct PacketHeaderFimngd m_packetHeader;
// m_packetHeader 구조체의 크기를 저장하기 위한 상수
const int m_iPacketHeaderLen;
// Packet Header 에 저장된 Data 부분의 길이 정보값.
unsigned int m_uPacketDataLen;
public:
// Packet Header 부분의 수신 처리를 위한 함수
// param command [out] 수신된 command code
// param timeout [in] 대기시간.
// retrun 0 : timeout
// 1 : 성공
// -1 : socket 오류 또는 정의된 Data 가 아닌 경우.
int GetPacketHeader( char & command, int timeout = DEFAULT_DATA_RECEIVE_TIMEOUT );
// Packet Header 정보를 Log 파일에 Logging 처리 ( Debug 처리를 위한 함수)
void PrintHeaderToLog( void );
// COMMAND_SERVICE_NETWORK_STAT 요청 관련 Body 수신 처리.
// - protocol version 에 따른 처리 필요.
// param vecNetworkStat [out] 수신된 각 서비스별 network 통계 정보 저장
// return false socket 오류, 해당 protocol version 미지원, RC ID 불일치 등 비정상 상황.
// 그외 true
bool GetPacketBodyNetworkStat( std::vector< struct ServiceNetworkStat > & vecStat );
// NEW 2016-05-27 huibong
// - #27106 에 의해
// - fimngd 로 부터 Network 통계 수신시 Protocol version 0x01 이상이면.. 처리 결과를 전송하도록 기능 추가
// - bSuccess = true : 성공인 경우.. Packet header 에 성공으로 표시하여 전달. ( 성공시 추가 메시지는 전달 안함)
// = false : 실패인 경우.. Packet header 에 실패로 표시하고.. 전달할 메시지가 있는 경우.. 해당 정보까지 전달.
bool SendResultNetworkStat( bool bSuccess, std::string& strMessage );
};
#endif /* __SOCKET_FIMNGD_H__ */