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
+64
View File
@@ -0,0 +1,64 @@
/***************************************************************************
Replicationg 관련 Queue Pop Control class
-----------------------------------------
begin : 2010/03/31
copyright : (C) 2010 Solbox Inc.
author : storage dev team
email : storage.sd@solbox.com
version : 3.3
CopyRight(C) 2010 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 __REPLICATE_QUEUE_CONTROL_H__
#define __REPLICATE_QUEUE_CONTROL_H__
#include <list>
#include "DataQueue.hpp"
#include "ReplicationData.h"
#include "ReportLog.h"
// CQueuePopControl
// Replication 처리 관련 원본 Queue 와 재시도 Queue 중
// 어느 Queue 에서 Replication 대상 content 를 POP 처리할 것인지를
// 제어하기 위한 클래스
class CReplicateQueueControl
{
public:
// 생성자
CReplicateQueueControl();
// 소멸자
~CReplicateQueueControl();
// 객체 초기화 함수
bool Init( CDataQueue<CSourceData> * pSourceQueue, CDataQueue<CRetryData> * pRetryQueue );
// Replication 을 처리할 객체를 요청한 수만큼 list 형태로 전달
// @param [in] nCnt 요청 개수를 입력한다.
// @param [out] lstWork 작업대상 정보를 list형태로 전달
// @return true 처리할 data 가 존재하는 경우..
// false 처리할 data 가 없는 경우
bool GetWork(unsigned int nCnt, std::list<CRetryData>& lstWork);
private:
// 복제대상 Content 정보를 관리하는 Queue 객체에 대한 포인터
CDataQueue<CSourceData> * m_pSourceQueue;
// 복제 처리 관련 재시도 Content 정보를 관리하는 Queue 객체에 대한 포인터
CDataQueue<CRetryData> * m_pRetryQueue;
// Report log 처리 관련 객체
CReportLog m_reportLog;
};
#endif // __REPLICATE_QUEUE_CONTROL_H__