CCAutoreleasePool

#ifndef __AUTORELEASEPOOL_H__

#define __AUTORELEASEPOOL_H__


#include "CCObject.h"

#include "CCArray.h"


NS_CC_BEGIN


/**

 * @addtogroup base_nodes

 * @{

 */


class CC_DLL CCAutoreleasePool : public CCObject

{

    CCArray*    m_pManagedObjectArray;    

public:

    CCAutoreleasePool(void);

    ~CCAutoreleasePool(void);


    void addObject(CCObject *pObject);

    void removeObject(CCObject *pObject);


    void clear();

};


class CC_DLL CCPoolManager

{

    CCArray*    m_pReleasePoolStack;    

    CCAutoreleasePool*                    m_pCurReleasePool;


    CCAutoreleasePool* getCurReleasePool();

public:

    CCPoolManager();

    ~CCPoolManager();

    void finalize();

    void push();

    void pop();


    void removeObject(CCObject* pObject);

    void addObject(CCObject* pObject);


    static CCPoolManager* sharedPoolManager();

    static void purgePoolManager();


    friend class CCAutoreleasePool;

};


// end of base_nodes group

/// @}


NS_CC_END


#endif //__AUTORELEASEPOOL_H__


posted @ 2014-05-23 10:29  sssssnian  阅读(169)  评论(0编辑  收藏  举报