/***************************************************************************
                HostInfo.h
                -----------------------------------------
    begin      : 2011/10/18
    copyright  : (C) 2005 SolutionBox Inc.
    author     : Service 1 Team
    email      : svc1@solbox.com

    CopyRight(C) 2005 SolutionBox Inc. All Rights reserved.
    Redistribution and use in source and binary forms, with or with out
    modification, are not permitted in outside of SolutionBox Inc.
***************************************************************************/

/***************************************************************************
                소스 수정 히스토리

작성자    작성일       Revision   내용
장희준    2011/10/18   ?          ADD - 최초 등록
***************************************************************************/
#ifndef	__HOSTINFO_H__
#define	__HOSTINFO_H__

#include <string>

///@brief 양방향 FHS 장비의 호스트 이름과 호스트명에 있는 호스트 번호를 얻는 클래스.
///       양방향 FHS 장비의 호스트 이름 형식은 'bd-01-fhs001.ktsh[x-cdn].co.kr'으로 되어 있다.
///       호스트 이름 : bd-01-fhs001.ktsh[x-cdn].co.kr
///       호스트 번호 : 001
class CHostInfo
{
// Attributes
private:
	///@brief 호스트 이름 저장.
	///       형식 : bd-01-fhs001.ktsh.co.kr
	std::string m_szHostname;

	///@brief 호스트 이름 저장.
	///       형식 : bd-01-fhs001
	std::string m_szShortHostname;

	///@brief 호스트 번호 저장.
	int m_nHostNumber;

protected:

public:

// Operations
private:
	///@brief 호스트 정보를 만드는 함수로 아래의 MakeXXX() 함수들을 호출한다.
	///@param none.
	///@return none.
	void MakeHostInfos();

	///@brief 호스트 이름을 만드는 함수.
	///@param none.
	///@return none.
	void MakeHostname();

	///@brief 호스트 이름을 만드는 함수.
	///@param none.
	///@return none.
	void MakeShortHostname();


	///@brief 호스트 번호를 만드는 함수.
	///@param none.
	///@return none.
	void MakeHostNumber();

protected:

public:
	///@brief 생성자.
	///       호스트 정보를 생성한다.
	CHostInfo();

	///@brief 소멸자.
	virtual ~CHostInfo();

	///@brief 호스트 이름을 얻는 함수.
	///@param none.
	///@return 저장된 호스트 이름을 반환한다.
	inline std::string GetHostname() { return m_szHostname; };

	///@brief 호스트 이름을 얻는 함수.
	///@param none.
	///@return 저장된 호스트 이름을 반환한다.
	inline std::string GetShortHostname() { return m_szShortHostname; };

	///@brief 호스트 번호를 얻는 함수.
	///@param none.
	///@return 저장된 호스트 번호를 반환한다.
	inline int GetHostNumber() { return m_nHostNumber; };
};

#endif //	__HOSTINFO_H__
