| 1 | /**
|
|---|
| 2 | * (C) 2008 Schima
|
|---|
| 3 | * This code is licenced under the LGPL.
|
|---|
| 4 | */
|
|---|
| 5 |
|
|---|
| 6 | #pragma once
|
|---|
| 7 |
|
|---|
| 8 | #include "CvArr.h"
|
|---|
| 9 | #include "CvFileNode.h"
|
|---|
| 10 | #include "CvMemStorage.h"
|
|---|
| 11 | #include "CvStringHashNode.h"
|
|---|
| 12 | #include "FileStorageMode.h"
|
|---|
| 13 |
|
|---|
| 14 | using namespace System;
|
|---|
| 15 | using namespace System::IO;
|
|---|
| 16 | using namespace System::Runtime::InteropServices;
|
|---|
| 17 | namespace N = KwsmLab::OpenCvSharp;
|
|---|
| 18 |
|
|---|
| 19 | // 名前衝突回避
|
|---|
| 20 | typedef CvFileStorage __CvFileStorage;
|
|---|
| 21 |
|
|---|
| 22 | namespace KwsmLab {
|
|---|
| 23 | namespace OpenCvSharp
|
|---|
| 24 | {
|
|---|
| 25 | /// <summary>
|
|---|
| 26 | /// ファイルストレージ.
|
|---|
| 27 | /// 後述する様々な関数はCvFileStorageを引数に持ち,スカラー値で構成される階層的なコレクションや,行列やシーケンス,
|
|---|
| 28 | /// グラフなどの標準的なCXCoreオブジェクト,ユーザ定義オブジェクトなどのセーブとロードをユーザに提供する.
|
|---|
| 29 | /// CXCoreは,XML(http://www.w3c.org/XML)や YAML (http://www.yaml.org)形式のデータの読み書きが可能である.
|
|---|
| 30 | /// </summary>
|
|---|
| 31 | public ref class CvFileStorage : public IDisposable
|
|---|
| 32 | {
|
|---|
| 33 | private:
|
|---|
| 34 | __CvFileStorage* ptr;
|
|---|
| 35 | Boolean isDisposed;
|
|---|
| 36 |
|
|---|
| 37 | internal:
|
|---|
| 38 | /// <summary>
|
|---|
| 39 | /// CvFileStorageポインタ (CvFileStorage*)
|
|---|
| 40 | /// </summary>
|
|---|
| 41 | property __CvFileStorage* Ptr{
|
|---|
| 42 | __CvFileStorage* get(void){ return ptr; }
|
|---|
| 43 | void set(__CvFileStorage* value){ ptr = value; }
|
|---|
| 44 | }
|
|---|
| 45 |
|
|---|
| 46 | public:
|
|---|
| 47 | CvFileStorage( String^ filename, N::CvMemStorage^ memstorage, FileStorageMode flags );
|
|---|
| 48 | !CvFileStorage( void );
|
|---|
| 49 | ~CvFileStorage( void );
|
|---|
| 50 |
|
|---|
| 51 | void Close( void );
|
|---|
| 52 | void EndWriteStruct( void );
|
|---|
| 53 | N::CvFileNode^ GetFileNode( N::CvFileNode^ map, N::CvStringHashNode^ key );
|
|---|
| 54 | N::CvFileNode^ GetFileNode( N::CvFileNode^ map, N::CvStringHashNode^ key, Boolean create_missing );
|
|---|
| 55 | N::CvFileNode^ GetFileNodeByName( N::CvFileNode^ map, String^ name );
|
|---|
| 56 | N::CvStringHashNode^ GetHashedKey( String^ name );
|
|---|
| 57 | N::CvStringHashNode^ GetHashedKey( String^ name, Boolean create_missing );
|
|---|
| 58 | N::CvFileNode^ GetRootFileNode( void );
|
|---|
| 59 | N::CvFileNode^ GetRootFileNode( Int32 stream_index );
|
|---|
| 60 | generic<typename T> where T : N::CvArr
|
|---|
| 61 | T Read( N::CvFileNode^ node );
|
|---|
| 62 | generic<typename T> where T : N::CvArr
|
|---|
| 63 | T ReadByName( N::CvFileNode^ map, String^ name );
|
|---|
| 64 | Int32 ReadIntByName( N::CvFileNode^ map, String^ name );
|
|---|
| 65 | Int32 ReadIntByName( N::CvFileNode^ map, String^ name, Int32 default_value );
|
|---|
| 66 | Double ReadRealByName( N::CvFileNode^ map, String^ name );
|
|---|
| 67 | Double ReadRealByName(N::CvFileNode^ map, String^ name, Double default_value );
|
|---|
| 68 | String^ ReadStringByName( N::CvFileNode^ map, String^ name );
|
|---|
| 69 | String^ ReadStringByName( N::CvFileNode^ map, String^ name, String^ default_value );
|
|---|
| 70 | void Release( void );
|
|---|
| 71 | void StartNextStream( void );
|
|---|
| 72 | void StartWriteStruct( String^ name, NodeType struct_flags );
|
|---|
| 73 | void StartWriteStruct( String^ name, NodeType struct_flags, String^ type_name );
|
|---|
| 74 | void Write( String^ name, N::CvArr^ ptr );
|
|---|
| 75 | void WriteComment( String^ comment );
|
|---|
| 76 | void WriteComment( String^ comment, Boolean eol_comment );
|
|---|
| 77 | void WriteInt( String^ name, Int32 value );
|
|---|
| 78 | void WriteReal( String^ name, Double value );
|
|---|
| 79 | void WriteString( String^ name, String^ str );
|
|---|
| 80 | void WriteString( String^ name, String^ str, Boolean quote );
|
|---|
| 81 | };
|
|---|
| 82 |
|
|---|
| 83 | }
|
|---|
| 84 | } |
|---|