root/lang/cpluspluscli/OpenCvSharp/trunk/OpenCvSharp/CvMemStorage.h @ 30907

Revision 30907, 1.5 kB (checked in by schima, 6 years ago)

DisposableObjectによりリソース解放処理を統一化

Line 
1/**
2 * (C) 2008 Schima
3 * This code is licenced under the LGPL.
4 */
5
6#pragma once
7
8typedef struct CvMemStorage __CvMemStorage;
9
10using namespace System;
11using namespace System::Runtime::InteropServices;
12namespace N = KwsmLab::OpenCvSharp;
13
14namespace KwsmLab {
15namespace OpenCvSharp
16{
17        /// <summary>
18        /// 動的に拡張可能なメモリストレージ
19        /// </summary>
20        public ref class CvMemStorage : public DisposableObject, public ICvObject
21        {
22        private:
23                __CvMemStorage* ptr;
24
25        protected:
26                virtual void Release( void ) override;
27
28        internal:
29                /// <summary>
30                /// メモリストレージへのポインタ [ __CvMemStorage* ]
31                /// </summary>
32                property __CvMemStorage* Ptr{
33                        __CvMemStorage* get(void){ return (__CvMemStorage*)this->ptr; }
34                }               
35                CvMemStorage( __CvMemStorage* ptr );
36
37        public:
38                CvMemStorage( void );
39                CvMemStorage( Int32 block_size );               
40                static N::CvMemStorage^ FromPtr( IntPtr ptr );
41
42                IntPtr Alloc( UInt32 size );
43                void Clear( void );
44                N::CvMemStorage^ CreateChild( void );
45               
46                /// <summary>
47                /// OpenCVのネイティブデータポインタを取得する
48                /// </summary>
49                virtual property IntPtr CvPtr{
50                        IntPtr get(void){ return (IntPtr)ptr; }
51                }
52                /// <summary>
53                /// 元データポインタのバイトサイズ、
54                /// すなわち sizeof(CvMemStorage) を取得する.
55                /// </summary>
56                virtual property Int32 SizeOf{
57                        Int32 get(void){ return sizeof(*ptr); }
58                }
59        };
60
61}
62}
Note: See TracBrowser for help on using the browser.