📄 mmulist.cpp
字号:
{ /* MMUllist::GetIndexOfCurrent procedure */
/******************* Local Constant Declarations **********************/
/******************* Local Variable Declarations **********************/
INT32 mmlInx;
MMG_LLIST_TY *mmlEntry;
/************************* Procedure Body *****************************/
if (numEntries == 0)
{
mmlInx = -1;
}
else if (current == head)
{
mmlInx = 0;
}
else if (current == tail)
{
mmlInx = numEntries-1;
}
else
{
mmlEntry = head->next;
mmlInx = 1;
while (mmlEntry != NULL && mmlEntry != current)
{
mmlEntry = mmlEntry->next;
mmlInx++;
}
if (mmlEntry == NULL)
{
mmlInx = -1;
}
}
return(mmlInx);
} /* MMUllist::GetIndexOfCurrent end */
/*\p********************************************************************
** **
** **
NAME: MMUllist::CopyTo
PURPOSE: to copy contents of this list to the specified
destination list.
** **
** **
** INTERFACE DEFINITION: **
** variable def. expected/description **
** ------------ ----- ------------------------------------- **
** mmlErr FNC STAT_TYPE, SUCCEEDED or FAILED **
**\p*******************************************************************/
STAT_TYPE MMUllist::CopyTo( MMUllist *refList )
{
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
STAT_TYPE mmlErr;
/************************* Procedure Body *****************************/
if (numEntries > 0)
{
mmlDat = MMUllist::First();
mmlErr = SUCCEEDED_;
while (mmlDat && mmlErr == SUCCEEDED_)
{
mmlErr = refList->AppendAfterTail( mmlDat->size,
mmlDat->body );
if (mmlErr == SUCCEEDED_)
{
mmlDat = MMUllist::Next();
}
}
}
return(mmlErr);
}
/*\p********************************************************************
** **
** **
NAME: MMUvlist::MMUvlist
PURPOSE: to construct a linked list.
** **
** **
**\p*******************************************************************/
MMUvlist::MMUvlist()
{ /* MMUvlist::MMUvlist procedure */
/************************* Procedure Body *****************************/
mmhList = new MMUllist();
} /* MMUvlist::MMUvlist end */
/*\p********************************************************************
** **
** **
NAME: MMUvlist::~MMUvlist
PURPOSE: to destroy an existing list.
** **
** **
**\p*******************************************************************/
MMUvlist::~MMUvlist()
{ /* MMUvlist::~MMUvlist procedure */
LIMDEL(mmhList);
} /* MMUvlist::~MMUvlist end */
/*\p********************************************************************
** **
** **
NAME: MMUvlist::InsertBeforeHead
PURPOSE: to insert a new entry before the head of the list.
** **
** INTERFACE DEFINITION: **
** variable def. expected/description **
** ------------ ----- ------------------------------------- **
** mmlErr FNC (SUCCEEDED_ / FAILED_) error return **
**\p*******************************************************************/
STAT_TYPE MMUvlist::InsertBeforeHead( INT32 pasSizeofBuf,
void *pasBufPtr )
{ /* MMUvlist::InsertBeforeHead procedure */
/************************* Procedure Body *****************************/
return(mmhList->InsertBeforeHead( pasSizeofBuf, pasBufPtr ));
} /* MMUvlist::InsertBeforeHead end */
/*\p********************************************************************
** **
** **
NAME: MMUvlist::AppendAfterTail
PURPOSE: to insert a new entry after the end of the list.
** **
** INTERFACE DEFINITION: **
** variable def. expected/description **
** ------------ ----- ------------------------------------- **
** FNC (SUCCEEDED_ / FAILED_) error return **
**\p*******************************************************************/
STAT_TYPE MMUvlist::AppendAfterTail( INT32 pasSizeofBuf,
void *pasBufPtr )
{ /* MMUvlist::AppendAfterTail procedure */
/************************* Procedure Body *****************************/
return(mmhList->AppendAfterTail( pasSizeofBuf, pasBufPtr ));
} /* MMUvlist::AppendAfterTail end */
/*\p********************************************************************
** **
** **
NAME: MMUvlist::InsertBeforeCurrent
PURPOSE: to insert a new entry before the current entry in
the list.
** **
** INTERFACE DEFINITION: **
** variable def. expected/description **
** ------------ ----- ------------------------------------- **
** FNC (SUCCEEDED_ / FAILED_) error return **
**\p*******************************************************************/
STAT_TYPE MMUvlist::InsertBeforeCurrent( INT32 pasSizeofBuf,
void *pasBufPtr )
{ /* MMUvlist::InsertBeforeCurrent procedure */
/************************* Procedure Body *****************************/
return(mmhList->InsertBeforeCurrent( pasSizeofBuf, pasBufPtr));
} /* MMUvlist::InsertBeforeCurrent end */
/*\p********************************************************************
** **
** **
NAME: MMUvlist::InsertAfterCurrent
PURPOSE: to insert a new entry after the current entry in
the list
** **
** INTERFACE DEFINITION: **
** variable def. expected/description **
** ------------ ----- ------------------------------------- **
** FNC (SUCCEEDED_ / FAILED_) error return **
**\p*******************************************************************/
STAT_TYPE MMUvlist::InsertAfterCurrent( INT32 pasSizeofBuf,
void *pasBufPtr )
{ /* MMUvlist::InsertAfterCurrent procedure */
/************************* Procedure Body *****************************/
return(mmhList->InsertAfterCurrent( pasSizeofBuf, pasBufPtr));
} /* MMUvlist::InsertAfterCurrent end */
/*\p********************************************************************
** **
** **
NAME: MMUvlist::DeleteCurrentEntry
PURPOSE: to delete the current entry in the list.
** **
** INTERFACE DEFINITION: **
** variable def. expected/description **
** ------------ ----- ------------------------------------- **
** FNC (SUCCEEDED_ / FAILED_) error return **
**\p*******************************************************************/
STAT_TYPE MMUvlist::DeleteCurrentEntry()
{ /* MMUvlist::DeleteCurrentEntry procedure */
return(mmhList->DeleteCurrentEntry());
} /* MMUvlist::DeleteCurrentEntry end */
/*\p********************************************************************
** **
** **
NAME: MMUvlist::DeleteList
PURPOSE: to delete all entries entry in the list.
** **
** INTERFACE DEFINITION: **
** variable def. expected/description **
** ------------ ----- ------------------------------------- **
** FNC (SUCCEEDED_ / FAILED_) error return **
**\p*******************************************************************/
STAT_TYPE MMUvlist::DeleteList()
{ /* MMUvlist::DeleteList procedure */
/************************* Procedure Body *****************************/
return(mmhList->DeleteList());
} /* MMUvlist::DeleteList end */
/*\p********************************************************************
** **
** **
NAME: MMUvlist::First
NAME: MMUvlist::Last
NAME: MMUvlist::Next
NAME: MMUvlist::Prev
NAME: MMUvlist::Current
NAME: MMUvlist::Indexed
PURPOSE: to return the address of the indicated data item
in the list. On error return NULL.
** **
** **
** INTERFACE DEFINITION: **
** variable def. expected/description **
** ------------ ----- ------------------------------------- **
** mmlVdat FNC void *, address of data buffer **
**\p*******************************************************************/
void *MMUvlist::First( )
{ /* MMUvlist::First procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
void *mmlVdat= NULL;
/************************* Procedure Body *****************************/
mmlDat = mmhList->First();
if (mmlDat)
{
mmlVdat = mmlDat->body;
}
return(mmlVdat);
} /* MMUvlist::First end */
/****************************************
* Last
*/
void *MMUvlist::Last( )
{ /* MMUvlist::Last procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
void *mmlVdat= NULL;
/************************* Procedure Body *****************************/
mmlDat = mmhList->Last();
if (mmlDat)
{
mmlVdat = mmlDat->body;
}
return(mmlVdat);
} /* MMUvlist::Last end */
/****************************************
* Next
*/
void *MMUvlist::Next( )
{ /* MMUvlist::Next procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
void *mmlVdat= NULL;
/************************* Procedure Body *****************************/
mmlDat = mmhList->Next();
if (mmlDat)
{
mmlVdat = mmlDat->body;
}
return(mmlVdat);
} /* MMUvlist::Next end */
/****************************************
* Prev
*/
void *MMUvlist::Prev( )
{ /* MMUvlist::Prev procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDat = NULL;
void *mmlVdat= NULL;
/************************* Procedure Body *****************************/
mmlDat = mmhList->Prev();
if (mmlDat)
{
mmlVdat = mmlDat->body;
}
return(mmlVdat);
} /* MMUvlist::Prev end */
/****************************************
* Current
*/
void *MMUvlist::Current( )
{ /* MMUvlist::Current procedure */
/******************* Local Variable Declarations ******************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -