@@ -12,27 +25,41 @@ All rights reserved. Please see niflib.h for license. */
#include<list>
#include<map>
#include<vector>
#include"../NIF_IO.h"
#include"../Ref.h"
#include"../Type.h"
#include"../gen/obj_defines.h"
namespaceNiflib{
usingnamespacestd;
classNiObject;
typedefRef<NiObject>NiObjectRef;
/**
* NiObject - Base NIF object from which all other NIF objects derive
/*!
* NiObject - Abstract object type.
*/
classNiObject{
public:
/*! Constructor */
NIFLIB_APINiObject();
/*! Destructor */
NIFLIB_APIvirtual~NiObject();
NIFLIB_API~NiObject();
/*!
* A constant value which uniquly identifies objects of this type.
*/
NIFLIB_APIstaticconstTypeTYPE;
/*!
* A factory function used during file reading to create an instance of this type of object.
* \return A pointer to a newly allocated instance of this type of object.
*/
NIFLIB_APIstaticNiObject*Create();
/*!
* Summarizes the information contained in this object in English.
* \param[in] verbose Determines whether or not detailed information about large areas of data will be printed out.
* \return A string containing a summary of the information within the object in English. This is the function that Niflyze calls to generate its analysis, so the output is the same.
* Summarizes the information contained in this object in English.
* \param[in] verbose Determines whether or not detailed information about large areas of data will be printed out.
* \return A string containing a summary of the information within the object in English. This is the function that Niflyze calls to generate its analysis, so the output is the same.
* Formats a human readable string that includes the type of the object, and its name, if any
* \return A string in the form: address(type), or adress(type) {name}
*/
NIFLIB_APIvirtualstringGetIDString()const;
/*!
* Returns the total number of NIF objects of any kind that have been allocated by Niflib for any reason. This is for debugging or informational purpouses. Mostly usful for tracking down memory leaks.
* \return The total number of NIF objects that have been allocated.
...
...
@@ -112,37 +133,24 @@ public:
* \return The number of references to this object that are in use.
*/
NIFLIB_APIunsignedintGetNumRefs();
private:
mutableunsignedint_ref_count;
list<NiObject*>_cross_refs;
staticunsignedintobjectsInMemory;
//--NIFLIB_HIDDEN functions. For internal use only--//
//--END CUSTOM CODE--//
public:
/*! NIFLIB_HIDDEN function. For internal use only. */