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

📄 ser_alloc.h

📁 电能质量交换格式转换库
💻 H
字号:
//  File name:          $Workfile: ser_alloc.h $
//  Last modified:      $Modtime: 2/09/98 12:08p $
//  Last modified by:   $Author: Rob $
//  
//  VCS archive path:   $Archive: /Hank/DMM/FirmWare/Level3/ObDatMgr/ser_alloc.h $
//  VCS revision:       $Revision: 3 $ 

#ifndef PQALLOC_INC
#define PQALLOC_INC

//#define bool    short
//#define DWORD   unsigned long
//#define TRUE    1
//#define FALSE   0

struct MemNode;
class PQAlloc
    {
    private:
        void        LinkIn (void *  obj, size_t siz);
        int         LinkOut(void *  obj);

        MemNode *   pmemFirst;
        MemNode *   pmemLast;

    protected:
    public:
        PQAlloc();
        ~PQAlloc();

        void        Initialize();
        void        Reinitialize(long offset = 0L);

        bool        bShowMessage;
        long        lMemTotal;          //  Total size of objects managed in allocator

        long        idxFilePosition;    //  next available position in pseudo file
        long        idxOffset;          //  Offset to be added to the idx
                                            //  parameter returned by allocate
                                            //  Used to allow resetting allocators
                                            //  but return correct file offset

        void *allocate(size_t   siz);
        void *allocate(size_t   siz, long &idx);

        //  Routines to add specific PQDIF elements
        c_collection_element * addCollection
            ( 
            UINT4   count, 
            long &  idx,
            SIZE4&  size
            );
        c_collection_element * addCollection
            ( 
            UINT4                   count, 
            long &                  idx,
            SIZE4&                  size,
            const GUID&             tag, 
            c_collection_element&   ce 
            );
        bool addScalarValue
            (
            long                    typePhysical,
            PQDIFValue              value,
            long &                  idx,
            SIZE4&                  size,
            const GUID&             tag, 
            c_collection_element&   ce 
            );
        bool addVectorValue
            (
            long                    typePhysical,
            long                    count, 
            BYTE *                  values,
            long &                  idx,
            SIZE4&                  size,
            const GUID &            tag, 
            c_collection_element&   ce 
            );

        static bool convertValue
            (
            long        typePhysical,
            PQDIFValue  value,
            BYTE *      pdata
            );

        void deallocate(void *  obj);

        long WriteListToFile(FILE *pf);
        long WriteListToStream( CPQDIF_StreamIO *pf );

        void WalkList();
        void DestroyList();

    };

extern int cdecl AuxPrint (char *szFormat,...);
extern int cdecl DebugPrint (char *szFormat,...);

#endif

⌨️ 快捷键说明

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