edit ZMainHead.H

This commit is contained in:
2021-03-04 15:39:34 +09:00
parent 11f325e278
commit 024c9d35db

View File

@ -2039,8 +2039,8 @@ namespace ZNsMain
class ZtCTypeObjUnitList //////////////////////////
{
public :
enum{ZEArrSize =TInArrSize };
enum{ZEMaxUnitCnt=TInMaxUnitCnt};
enum{ZZEArrSize =TInArrSize };
enum{ZEMaxUnitCnt =TInMaxUnitCnt};
public :
typedef Type TypeData ;
typedef TypArg TypeArg ;
@ -2081,15 +2081,15 @@ namespace ZNsMain
public :
typedef TTypeObjUnitList TypeObjUnitList;
public :
enum{ZEArrSize =TypeObjUnitList::EArrSize };
enum{ZEMaxUnitCnt=TypeObjUnitList::EMaxUnitCnt};
enum{ZZEArrSize =TypeObjUnitList::ZEArrSize };
enum{ZEMaxUnitCnt =TypeObjUnitList::ZEMaxUnitCnt};
public :
typedef typename TypeObjUnitList::TypeData TypeData ;
typedef typename TypeObjUnitList::TypeArg TypeArg ;
typedef typename TypeObjUnitList::TypeSize TypeSize ;
typedef typename TypeObjUnitList::TypeAlloc TypeAlloc;
public :
typedef TypeData TypeArr[EArrSize];
typedef TypeData TypeArr[ZEArrSize];
typedef TypeData ZCLink ; // 이 typedef 에 주의.
public :
@ -2121,7 +2121,7 @@ namespace ZNsMain
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()*/
@ -2184,7 +2184,7 @@ namespace ZNsMain
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;
}/*
@ -2192,13 +2192,13 @@ namespace ZNsMain
void AddObjArr(TypeData* AP_ObjArr, TypeSize AI_ArrSize)
{
if(ml_UseSize>=EArrSize) return;
if(ml_UseSize>=ZEArrSize) return;
while(--AI_ArrSize>=0)
{
mo_TypeArr[ml_UseSize++] = *AP_ObjArr++;
if(ml_UseSize>=EArrSize) return;
if(ml_UseSize>=ZEArrSize) return;
}/*
while(--AI_ArrSize>=0)*/
}/*
@ -2206,7 +2206,7 @@ namespace ZNsMain
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;
}/*
@ -2495,11 +2495,11 @@ namespace ZNsMain
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;
}/*
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;
}/*
@ -2530,11 +2530,11 @@ namespace ZNsMain
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();
}/*
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();
}/*
@ -2548,12 +2548,12 @@ namespace ZNsMain
if(AI_ArrSize<1) return;
TypeSize VI_AddUnitCnt =AI_ArrSize/EArrSize;
TypeSize VI_AddExtraCnt=AI_ArrSize%EArrSize;
TypeSize VI_AddUnitCnt =AI_ArrSize/ZEArrSize;
TypeSize VI_AddExtraCnt=AI_ArrSize%ZEArrSize;
while(--VI_AddUnitCnt>=0)
{
AllocUnitAtTail()->AddObjArr(AP_ObjArr, EArrSize); AP_ObjArr += EArrSize;
AllocUnitAtTail()->AddObjArr(AP_ObjArr, ZEArrSize); AP_ObjArr += ZEArrSize;
}/*
while(--VI_AddUnitCnt>=0)*/
@ -2578,28 +2578,28 @@ namespace ZNsMain
template<typename TAllocWork> void AddTailInPool(
TAllocWork& AR_CAllocWork, TypeData* AP_ObjArr, TypeSize AI_ArrSize)
{
// EMaxUnitCnt 개 단위로 등록한다.
// ZEMaxUnitCnt 개 단위로 등록한다.
// CAllocWork_BASE2_T<> 를 참고하면, *this 는 '임시 작업 큐'다.
typedef typename TAllocWork::CSyncExec CSyncExec;
if(AI_ArrSize<1) return;
TypeSize VI_AddUnitCnt =AI_ArrSize/EArrSize;
TypeSize VI_AddExtraCnt=AI_ArrSize%EArrSize;
TypeSize VI_MaxUnitCnt =EMaxUnitCnt ;
TypeSize VI_AddUnitCnt =AI_ArrSize/ZEArrSize;
TypeSize VI_AddExtraCnt=AI_ArrSize%ZEArrSize;
TypeSize VI_MaxUnitCnt =ZEMaxUnitCnt ;
while(--VI_AddUnitCnt>=0)
{
AllocUnitAtTail()->
AddObjArr(AP_ObjArr, EArrSize); AP_ObjArr += EArrSize;
ml_NowObjtCnt += EArrSize ;
AddObjArr(AP_ObjArr, ZEArrSize); AP_ObjArr += ZEArrSize;
ml_NowObjtCnt += ZEArrSize ;
if(--VI_MaxUnitCnt<=0)
{
// CAllocWork_BASE2_T<> 를 참고하면, *this 는 '임시 작업 큐'다.
AR_CAllocWork.AddList(RR(*this)); VI_MaxUnitCnt=EMaxUnitCnt;
AR_CAllocWork.AddList(RR(*this)); VI_MaxUnitCnt=ZEMaxUnitCnt;
}/*
if(--VI_MaxUnitCnt<=0)*/
}/*
@ -2645,18 +2645,18 @@ namespace ZNsMain
if(AI_ArrSize<1) return;
TypeSize VI_AddUnitCnt =AI_ArrSize/EArrSize;
TypeSize VI_AddExtraCnt=AI_ArrSize%EArrSize;
TypeSize VI_MaxUnitCnt =EMaxUnitCnt ;
TypeSize VI_AddUnitCnt =AI_ArrSize/ZEArrSize;
TypeSize VI_AddExtraCnt=AI_ArrSize%ZEArrSize;
TypeSize VI_MaxUnitCnt =ZEMaxUnitCnt ;
while(--VI_AddUnitCnt>=0)
{
__for0(TypeSize, i, EArrSize)
__for0(TypeSize, i, ZEArrSize)
push_back() = *(AP_ObjArr++);
if(--VI_MaxUnitCnt<=0)
{
AR_CAllocWork.AddList(RR(*this)); VI_MaxUnitCnt=EMaxUnitCnt;
AR_CAllocWork.AddList(RR(*this)); VI_MaxUnitCnt=ZEMaxUnitCnt;
}/*
if(--VI_MaxUnitCnt<=0)*/
}/*