📄 sh_00.cc
字号:
// file: $isip/class/system/SysHeap/sh_00.cc// version: $Id: sh_00.cc,v 1.5 2000/09/26 15:48:34 hamaker Exp $//// isip include files//#include "SysHeap.h"// method: clear//// arguments:// Integral::CMODE ctype: (input) clear mode for the heap//// return: a boolean value indicating status//// this method clears the heap//boolean SysHeap::clear(Integral::CMODE ctype_a) { // if the ctype_a is RETAIN or RESET, clear structure but don't // necessarily delete memory // if ((ctype_a == Integral::RETAIN) || (ctype_a == Integral::RESET)) { setLength(0); } // if the ctype_a is RELEASE, clear the structure and release memory // else if (ctype_a == Integral::RELEASE) { if (!setCapacity(0)) { return Error::handle(name(), L"clear", Error::ARG, __FILE__, __LINE__); } } // if the ctype_a is FREE, delete all memory held in structure // else if (ctype_a == Integral::FREE) { // loop through each element in the heap and deallocate memory // for (long i = 0; i < num_elements_d; i++) { if (data_d[i] != (void*)NULL) { free(data_d[i]); } } if (!setCapacity(0)) { return Error::handle(name(), L"clear", Error::ARG, __FILE__, __LINE__); } // reset the variables // num_elements_d = 0; capacity_d = 0; } // set configuration variables // grow_factor_d = DEF_GROW_FACTOR; // exit gracefully // return true;}// method: destructor//// arguments: none//// return: none//SysHeap::~SysHeap() { // clean up memory and reset // if (data_d != (void**)NULL) { free(data_d); data_d = (void**)NULL; } // exit gracefully //}// method: default constructor//// arguments: none//// return: none//SysHeap::SysHeap() { // initialize the class data // num_elements_d = DEF_NUM_ELEMENTS; capacity_d = DEF_CAPACITY; grow_factor_d = DEF_GROW_FACTOR; data_d = (void**)NULL; // exit gracefully //}//-----------------------------------------------------------------------------//// we define non-integral constants in the default constructor// //-----------------------------------------------------------------------------// constants: class name//const unichar SysHeap::CLASS_NAME[] = L"SysHeap";// static instantiations: debug level//Integral::DEBUG SysHeap::debug_level_d = Integral::NONE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -