⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmuslist.cpp

📁 用c++变得一个测量财富的+游戏
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*\t*******************************************************************/
/*    Creation Date .......  Tue  08-10-1993  21:57:27                */
/*    Filename  ...........  mmuslist.cpp                             */
/*    Project .............  Memory Management                        */
/*    Author  .............  Matthew J. W. Ratcliff                   */
/*    Language  ...........  C++                                      */
/*    Operating System  ...  DOS/Windows                              */
/*    Processor  ..........  MMU - Memory Management Utilities        */
/*    Function:         String linked list package.                   */
/*      This subclasses MMUslist to create a linked list              */
/*      specific to null terminated strings!                          */
/*\t*******************************************************************/

/*\r********************************************************************
**                         Revision History
***********************************************************************/
/*

   Date    By           Change Description
dd-mmm-yy  nnn          text
---------  ----         -----------------------------------------------
10-Aug-93  MJWR         Sublcass MMUllist to create a linked list
                        package specific to null terminated C string
                        storage.
**\r*/

/*\i********************************************************************
**                       Module Include Files
***********************************************************************/

/*********************** System Include Files *************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/********************** Constant Include Files ************************/
#include "liidSys.h"
#include "mmplist.h"

/***************** External Variable Include Files ********************/



/***************** External Procedure Include Files *******************/
#include "liustrg.h"
#include "mmulist.h"
#include "mmuslist.h"

/*\i*/

/*\m********************************************************************
**                       Module Declarations
***********************************************************************/

/************************* Module Constants ***************************/

/************************* Module Variables ***************************/

/************************* Module Procedures **************************/

/*\m*/

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::InsertBeforeHead

    PURPOSE:  to insert a new string before the head of the list.

**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlErr             FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUslist::InsertBeforeHead( char *pasBufPtr )

{ /* MMUslist::InsertBeforeHead procedure */

/******************* Local Variable Declarations **********************/
STAT_TYPE               mmlErr;

/************************* Procedure Body *****************************/


if (pasBufPtr)
  {
  mmlErr = MMUllist::InsertBeforeHead( (INT32)strlen(pasBufPtr)+1,
                                       (void *)pasBufPtr );
  }
else
  {
  mmlErr = FAILED_;
  // bad parameter
  }

return(mmlErr);
} /* MMUslist::InsertBeforeHead end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::AppendAfterTail

    PURPOSE:  to insert a new entry after the end of the list.

**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlErr             FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUslist::AppendAfterTail( char *pasBufPtr )

{ /* MMUslist::AppendAfterTail procedure */

/******************* Local Constant Declarations **********************/
/* Proc name for error log */
//CHARPTR MML_PROC_NAME = "MMUslist::AppendAfterTail";

/******************* Local Variable Declarations **********************/
STAT_TYPE               mmlErr;

/************************* Procedure Body *****************************/
if (pasBufPtr)
  {
  mmlErr = MMUllist::AppendAfterTail( (INT32)strlen(pasBufPtr)+1,
                                      (void *)pasBufPtr );
  }
else
  { // parameter error
  mmlErr = FAILED_;
  }

return(mmlErr);
} /* MMUslist::AppendAfterTail end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::InsertBeforeCurrent

    PURPOSE:  to insert a new entry before the current entry in
       the list.

**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlErr             FNC    (SUCCEEDED_ / FAILED_) error return    **
**\p*******************************************************************/

STAT_TYPE MMUslist::InsertBeforeCurrent( char *pasBufPtr )

{ /* MMUslist::InsertBeforeCurrent procedure */

/******************* Local Variable Declarations **********************/
STAT_TYPE               mmlErr;
/************************* Procedure Body *****************************/

if (pasBufPtr)
  {
  mmlErr = MMUllist::InsertBeforeCurrent( (INT32)strlen(pasBufPtr)+1,
                                          (void *)pasBufPtr );
  }
else
  {
  mmlErr = FAILED_; // parameter error
  }
return(mmlErr);
} /* MMUslist::InsertBeforeCurrent end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::First

    PURPOSE:  to return the address of the first data item
      in the list.  On error return NULL.

**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlDat             FNC    char *, address of data buffer  **
**\p*******************************************************************/

char *MMUslist::First( )

{ /* MMUslist::First procedure */

/******************* Local Constant Declarations **********************/

/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDatum;

char *mmlDat = NULL;

/************************* Procedure Body *****************************/

mmlDatum = MMUllist::First();
if (mmlDatum)
  {
  mmlDat = (char *)mmlDatum->body;
  }

return(mmlDat);
} /* MMUslist::First end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::Last

    PURPOSE:  to return the address of the last string
      in the list.  On error return NULL.

**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlDat             FNC    char *, address of data buffer  **
**\p*******************************************************************/

char *MMUslist::Last( )

{ /* MMUslist::Last procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDatum;
char *mmlDat = NULL;
/************************* Procedure Body *****************************/

mmlDatum = MMUllist::Last();
if (mmlDatum)
  {
  mmlDat = (char *)mmlDatum->body;
  }

return(mmlDat);
} /* MMUslist::Last end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::Next

    PURPOSE:  to return the address of the next data item
      in the list.  On error return NULL.

**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlDat             FNC    char *, address of data buffer  **
**\p*******************************************************************/

char *MMUslist::Next( )

{ /* MMUslist::Next procedure */
/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDatum;
char *mmlDat = NULL;
/************************* Procedure Body *****************************/

mmlDatum = MMUllist::Next();
if (mmlDatum)
  {
  mmlDat = (char *)mmlDatum->body;
  }

return(mmlDat);
} /* MMUslist::Next end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::Prev

    PURPOSE:  to return the address of the previous data item
      in the list.  On error return NULL.

**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlDat             FNC    char *, address of data buffer  **
**\p*******************************************************************/

char *MMUslist::Prev( )

{ /* MMUslist::Prev procedure */

/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDatum;
char *mmlDat = NULL;
/************************* Procedure Body *****************************/

mmlDatum = MMUllist::Prev();
if (mmlDatum)
  {
  mmlDat = (char *)mmlDatum->body;
  }
return(mmlDat);
} /* MMUslist::Prev end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::Current

    PURPOSE:  to return the address of the current data item
      in the list.  On error return NULL.

**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlDat             FNC    char *, address of data buffer  **
**\p*******************************************************************/

char *MMUslist::Current( )

{ /* MMUslist::Current procedure */

/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDatum;
char *mmlDat = NULL;

/************************* Procedure Body *****************************/
mmlDatum = MMUllist::Current();
if (mmlDatum)
  {
  mmlDat = (char *)mmlDatum->body;
  }

return(mmlDat);
} /* MMUslist::Current end */

/*\p********************************************************************
**                                                                    **
**                                                                    **
    NAME:  MMUslist::Indexed

    PURPOSE:  to return the address of the indexed data item
      in the list.  On error return NULL.

**                                                                    **
**                                                                    **
**  INTERFACE DEFINITION:                                             **
**     variable         def.          expected/description            **
**   ------------       -----  -------------------------------------  **
**   mmlDat             FNC    char *, address of data buffer  **
**\p*******************************************************************/

char *MMUslist::Indexed( INT32 pasIndex )

{ /* MMUslist::Indexed procedure */

/******************* Local Variable Declarations **********************/
MMP_DATA_TY *mmlDatum;
char *mmlDat = NULL;
/************************* Procedure Body *****************************/

mmlDatum = MMUllist::Indexed( pasIndex );
if (mmlDatum)
  {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -