edit ZMainHead.H
This commit is contained in:
@ -2039,8 +2039,8 @@ namespace ZNsMain
|
|||||||
class ZtCTypeObjUnitList //////////////////////////
|
class ZtCTypeObjUnitList //////////////////////////
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
enum{ZEArrSize =TInArrSize };
|
enum{ZZEArrSize =TInArrSize };
|
||||||
enum{ZEMaxUnitCnt=TInMaxUnitCnt};
|
enum{ZEMaxUnitCnt =TInMaxUnitCnt};
|
||||||
public :
|
public :
|
||||||
typedef Type TypeData ;
|
typedef Type TypeData ;
|
||||||
typedef TypArg TypeArg ;
|
typedef TypArg TypeArg ;
|
||||||
@ -2081,15 +2081,15 @@ namespace ZNsMain
|
|||||||
public :
|
public :
|
||||||
typedef TTypeObjUnitList TypeObjUnitList;
|
typedef TTypeObjUnitList TypeObjUnitList;
|
||||||
public :
|
public :
|
||||||
enum{ZEArrSize =TypeObjUnitList::EArrSize };
|
enum{ZZEArrSize =TypeObjUnitList::ZEArrSize };
|
||||||
enum{ZEMaxUnitCnt=TypeObjUnitList::EMaxUnitCnt};
|
enum{ZEMaxUnitCnt =TypeObjUnitList::ZEMaxUnitCnt};
|
||||||
public :
|
public :
|
||||||
typedef typename TypeObjUnitList::TypeData TypeData ;
|
typedef typename TypeObjUnitList::TypeData TypeData ;
|
||||||
typedef typename TypeObjUnitList::TypeArg TypeArg ;
|
typedef typename TypeObjUnitList::TypeArg TypeArg ;
|
||||||
typedef typename TypeObjUnitList::TypeSize TypeSize ;
|
typedef typename TypeObjUnitList::TypeSize TypeSize ;
|
||||||
typedef typename TypeObjUnitList::TypeAlloc TypeAlloc;
|
typedef typename TypeObjUnitList::TypeAlloc TypeAlloc;
|
||||||
public :
|
public :
|
||||||
typedef TypeData TypeArr[EArrSize];
|
typedef TypeData TypeArr[ZEArrSize];
|
||||||
typedef TypeData ZCLink ; // 이 typedef 에 주의.
|
typedef TypeData ZCLink ; // 이 typedef 에 주의.
|
||||||
public :
|
public :
|
||||||
|
|
||||||
@ -2121,7 +2121,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
TypeData& AddEmptyObj_E() // E 는 Error 가 발생할 수 있다는 뜻.
|
TypeData& AddEmptyObj_E() // E 는 Error 가 발생할 수 있다는 뜻.
|
||||||
{
|
{
|
||||||
return mo_TypeArr[ml_UseSize++]; // error 체크 즉, ml_UseSize>=EArrSize 인지를 체크하지 않는다.
|
return mo_TypeArr[ml_UseSize++]; // error 체크 즉, ml_UseSize>=ZEArrSize 인지를 체크하지 않는다.
|
||||||
}/*
|
}/*
|
||||||
TypeData& AddEmptyObj_E()*/
|
TypeData& AddEmptyObj_E()*/
|
||||||
|
|
||||||
@ -2184,7 +2184,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
bool AddObj(TypeArg AR_Object)
|
bool AddObj(TypeArg AR_Object)
|
||||||
{
|
{
|
||||||
if(ml_UseSize>=EArrSize) return false;
|
if(ml_UseSize>=ZEArrSize) return false;
|
||||||
|
|
||||||
mo_TypeArr[ml_UseSize++]=AR_Object; return true;
|
mo_TypeArr[ml_UseSize++]=AR_Object; return true;
|
||||||
}/*
|
}/*
|
||||||
@ -2192,13 +2192,13 @@ namespace ZNsMain
|
|||||||
|
|
||||||
void AddObjArr(TypeData* AP_ObjArr, TypeSize AI_ArrSize)
|
void AddObjArr(TypeData* AP_ObjArr, TypeSize AI_ArrSize)
|
||||||
{
|
{
|
||||||
if(ml_UseSize>=EArrSize) return;
|
if(ml_UseSize>=ZEArrSize) return;
|
||||||
|
|
||||||
while(--AI_ArrSize>=0)
|
while(--AI_ArrSize>=0)
|
||||||
{
|
{
|
||||||
mo_TypeArr[ml_UseSize++] = *AP_ObjArr++;
|
mo_TypeArr[ml_UseSize++] = *AP_ObjArr++;
|
||||||
|
|
||||||
if(ml_UseSize>=EArrSize) return;
|
if(ml_UseSize>=ZEArrSize) return;
|
||||||
}/*
|
}/*
|
||||||
while(--AI_ArrSize>=0)*/
|
while(--AI_ArrSize>=0)*/
|
||||||
}/*
|
}/*
|
||||||
@ -2206,7 +2206,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
bool AddEmptyObj(TypeData*& APR_Object)
|
bool AddEmptyObj(TypeData*& APR_Object)
|
||||||
{
|
{
|
||||||
if(ml_UseSize>=EArrSize) return false;
|
if(ml_UseSize>=ZEArrSize) return false;
|
||||||
|
|
||||||
APR_Object=mo_TypeArr+(ml_UseSize++); return true;
|
APR_Object=mo_TypeArr+(ml_UseSize++); return true;
|
||||||
}/*
|
}/*
|
||||||
@ -2495,11 +2495,11 @@ namespace ZNsMain
|
|||||||
|
|
||||||
void AddTail(TypeArg AR_Object)
|
void AddTail(TypeArg AR_Object)
|
||||||
{
|
{
|
||||||
if(ml_NowUnitCnt>0 && mp_NowHeadUnit->mp_PrevUnit->size()<this->EArrSize)
|
if(ml_NowUnitCnt>0 && mp_NowHeadUnit->mp_PrevUnit->size()<this->ZEArrSize)
|
||||||
{
|
{
|
||||||
mp_NowHeadUnit->mp_PrevUnit->AddObj(AR_Object); ++ml_NowObjtCnt; return;
|
mp_NowHeadUnit->mp_PrevUnit->AddObj(AR_Object); ++ml_NowObjtCnt; return;
|
||||||
}/*
|
}/*
|
||||||
if(ml_NowUnitCnt>0 && mp_NowHeadUnit->mp_PrevUnit->size()<this->EArrSize)*/
|
if(ml_NowUnitCnt>0 && mp_NowHeadUnit->mp_PrevUnit->size()<this->ZEArrSize)*/
|
||||||
|
|
||||||
AllocUnitAtTail()->AddObj(AR_Object); ++ml_NowObjtCnt;
|
AllocUnitAtTail()->AddObj(AR_Object); ++ml_NowObjtCnt;
|
||||||
}/*
|
}/*
|
||||||
@ -2530,11 +2530,11 @@ namespace ZNsMain
|
|||||||
|
|
||||||
TypeData& AddTail()
|
TypeData& AddTail()
|
||||||
{
|
{
|
||||||
if(ml_NowUnitCnt>0 && mp_NowHeadUnit->mp_PrevUnit->size()<this->EArrSize)
|
if(ml_NowUnitCnt>0 && mp_NowHeadUnit->mp_PrevUnit->size()<this->ZEArrSize)
|
||||||
{
|
{
|
||||||
++ml_NowObjtCnt; return mp_NowHeadUnit->mp_PrevUnit->AddEmptyObj_E();
|
++ml_NowObjtCnt; return mp_NowHeadUnit->mp_PrevUnit->AddEmptyObj_E();
|
||||||
}/*
|
}/*
|
||||||
if(ml_NowUnitCnt>0 && mp_NowHeadUnit->mp_PrevUnit->size()<this->EArrSize)*/
|
if(ml_NowUnitCnt>0 && mp_NowHeadUnit->mp_PrevUnit->size()<this->ZEArrSize)*/
|
||||||
|
|
||||||
++ml_NowObjtCnt; return AllocUnitAtTail()->AddEmptyObj_E();
|
++ml_NowObjtCnt; return AllocUnitAtTail()->AddEmptyObj_E();
|
||||||
}/*
|
}/*
|
||||||
@ -2548,12 +2548,12 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(AI_ArrSize<1) return;
|
if(AI_ArrSize<1) return;
|
||||||
|
|
||||||
TypeSize VI_AddUnitCnt =AI_ArrSize/EArrSize;
|
TypeSize VI_AddUnitCnt =AI_ArrSize/ZEArrSize;
|
||||||
TypeSize VI_AddExtraCnt=AI_ArrSize%EArrSize;
|
TypeSize VI_AddExtraCnt=AI_ArrSize%ZEArrSize;
|
||||||
|
|
||||||
while(--VI_AddUnitCnt>=0)
|
while(--VI_AddUnitCnt>=0)
|
||||||
{
|
{
|
||||||
AllocUnitAtTail()->AddObjArr(AP_ObjArr, EArrSize); AP_ObjArr += EArrSize;
|
AllocUnitAtTail()->AddObjArr(AP_ObjArr, ZEArrSize); AP_ObjArr += ZEArrSize;
|
||||||
}/*
|
}/*
|
||||||
while(--VI_AddUnitCnt>=0)*/
|
while(--VI_AddUnitCnt>=0)*/
|
||||||
|
|
||||||
@ -2578,28 +2578,28 @@ namespace ZNsMain
|
|||||||
template<typename TAllocWork> void AddTailInPool(
|
template<typename TAllocWork> void AddTailInPool(
|
||||||
TAllocWork& AR_CAllocWork, TypeData* AP_ObjArr, TypeSize AI_ArrSize)
|
TAllocWork& AR_CAllocWork, TypeData* AP_ObjArr, TypeSize AI_ArrSize)
|
||||||
{
|
{
|
||||||
// EMaxUnitCnt 개 단위로 등록한다.
|
// ZEMaxUnitCnt 개 단위로 등록한다.
|
||||||
// CAllocWork_BASE2_T<> 를 참고하면, *this 는 '임시 작업 큐'다.
|
// CAllocWork_BASE2_T<> 를 참고하면, *this 는 '임시 작업 큐'다.
|
||||||
|
|
||||||
typedef typename TAllocWork::CSyncExec CSyncExec;
|
typedef typename TAllocWork::CSyncExec CSyncExec;
|
||||||
|
|
||||||
if(AI_ArrSize<1) return;
|
if(AI_ArrSize<1) return;
|
||||||
|
|
||||||
TypeSize VI_AddUnitCnt =AI_ArrSize/EArrSize;
|
TypeSize VI_AddUnitCnt =AI_ArrSize/ZEArrSize;
|
||||||
TypeSize VI_AddExtraCnt=AI_ArrSize%EArrSize;
|
TypeSize VI_AddExtraCnt=AI_ArrSize%ZEArrSize;
|
||||||
TypeSize VI_MaxUnitCnt =EMaxUnitCnt ;
|
TypeSize VI_MaxUnitCnt =ZEMaxUnitCnt ;
|
||||||
|
|
||||||
while(--VI_AddUnitCnt>=0)
|
while(--VI_AddUnitCnt>=0)
|
||||||
{
|
{
|
||||||
AllocUnitAtTail()->
|
AllocUnitAtTail()->
|
||||||
AddObjArr(AP_ObjArr, EArrSize); AP_ObjArr += EArrSize;
|
AddObjArr(AP_ObjArr, ZEArrSize); AP_ObjArr += ZEArrSize;
|
||||||
ml_NowObjtCnt += EArrSize ;
|
ml_NowObjtCnt += ZEArrSize ;
|
||||||
|
|
||||||
if(--VI_MaxUnitCnt<=0)
|
if(--VI_MaxUnitCnt<=0)
|
||||||
{
|
{
|
||||||
// CAllocWork_BASE2_T<> 를 참고하면, *this 는 '임시 작업 큐'다.
|
// CAllocWork_BASE2_T<> 를 참고하면, *this 는 '임시 작업 큐'다.
|
||||||
|
|
||||||
AR_CAllocWork.AddList(RR(*this)); VI_MaxUnitCnt=EMaxUnitCnt;
|
AR_CAllocWork.AddList(RR(*this)); VI_MaxUnitCnt=ZEMaxUnitCnt;
|
||||||
}/*
|
}/*
|
||||||
if(--VI_MaxUnitCnt<=0)*/
|
if(--VI_MaxUnitCnt<=0)*/
|
||||||
}/*
|
}/*
|
||||||
@ -2645,18 +2645,18 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(AI_ArrSize<1) return;
|
if(AI_ArrSize<1) return;
|
||||||
|
|
||||||
TypeSize VI_AddUnitCnt =AI_ArrSize/EArrSize;
|
TypeSize VI_AddUnitCnt =AI_ArrSize/ZEArrSize;
|
||||||
TypeSize VI_AddExtraCnt=AI_ArrSize%EArrSize;
|
TypeSize VI_AddExtraCnt=AI_ArrSize%ZEArrSize;
|
||||||
TypeSize VI_MaxUnitCnt =EMaxUnitCnt ;
|
TypeSize VI_MaxUnitCnt =ZEMaxUnitCnt ;
|
||||||
|
|
||||||
while(--VI_AddUnitCnt>=0)
|
while(--VI_AddUnitCnt>=0)
|
||||||
{
|
{
|
||||||
__for0(TypeSize, i, EArrSize)
|
__for0(TypeSize, i, ZEArrSize)
|
||||||
push_back() = *(AP_ObjArr++);
|
push_back() = *(AP_ObjArr++);
|
||||||
|
|
||||||
if(--VI_MaxUnitCnt<=0)
|
if(--VI_MaxUnitCnt<=0)
|
||||||
{
|
{
|
||||||
AR_CAllocWork.AddList(RR(*this)); VI_MaxUnitCnt=EMaxUnitCnt;
|
AR_CAllocWork.AddList(RR(*this)); VI_MaxUnitCnt=ZEMaxUnitCnt;
|
||||||
}/*
|
}/*
|
||||||
if(--VI_MaxUnitCnt<=0)*/
|
if(--VI_MaxUnitCnt<=0)*/
|
||||||
}/*
|
}/*
|
||||||
|
Reference in New Issue
Block a user