base
This commit is contained in:
@@ -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__ */
|
||||
|
||||
Reference in New Issue
Block a user