クラス: Mongo::Crypt::Binary Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Crypt::Binary
- 定義:
- lib/mongo/crypt/binary.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
mongocrypt_binary_t を囲むラッパーは、uint- 8バイト データの非所有バッファです。 各バイナリ インスタンスは、そのデータを有効に保つために、渡されたデータのコピーを保持します。
クラスメソッドの概要を折りたたむ
-
。 from_data (データ) = Mongo::Crypt::Binary
private
string でバイナリ オブジェクトを初期化します。
-
。 from_pointer (ポインター)=Mongo::Crypt::Binary
private
バイナリ オブジェクトを既存のポインターから mongocrypt_binary_t オブジェクトに初期化します。
-
。 wrap_string (str) = オブジェクト
private
string を mongocrypt_binary_t でラップし、ラップされた構造体への FFI::Pointer を生成します。
インスタンス メソッドの概要を折りたたむ
-
#initialize(data: nil, pointer: nil) ⇒ Binary
コンストラクター
private
バイト string をラップする新しいバイナリ オブジェクトを作成します。
-
参照: FFI::Pointer
private
基礎となる mongocrypt_binary_t オブジェクトへの参照を返します。
-
# to_s = string
private
保存されたデータを string として返します。
-
#write (データ) = true
private
このバイナリ オブジェクトによってラップされている既存のデータを上書きします。
コンストラクターの詳細
#initialize(data: nil, pointer: nil) ⇒ Binary
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
string またはポインターでバイナリ オブジェクトを初期化する場合、
バイト string をラップする新しいバイナリ オブジェクトを作成します
Node .from_pointer を使用することをお勧めします または メソッド
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# ファイル 'lib/mongo/crypt/binary.rb' 行 39 デフォルト 初期化(データ: nil, ポインター: nil) 場合 データ データstringを uint-8 バイトの配列として表現 バイト = データ.解凍(' C* ') #FFI::MemoryPointer は範囲を超えるとメモリを自動的に解放します。 @data_p = FFI::MemoryPointer.新着情報(バイト.Length) .write_array_ of_uint 8(バイト) #FFI::AutoPointer はカスタム リリース戦略を使用して自動的に解放 このオブジェクトがスコープを超えるとポインターは 表示されます @bin = FFI::AutoPointer.新着情報( バインディング.mongocrypt_binary_new_from_data(@data_p, バイト.Length), バインディング.メソッド(:mongocrypt_binary_detry) ) elsif ポインター # バイナリ クラスがこのように使用される場合、ポインターは 基盤となるmongocrypt_binary_t オブジェクトは次の場所に割り当てられます: それ以外の場合は 。 データの割り当てを解除するのはこのクラスの責任です。 @bin = ポインター else #FFI::AutoPointer はカスタム リリース戦略を使用して自動的に解放 このオブジェクトがスコープを超えるとポインターは 表示されます @bin = FFI::AutoPointer.新着情報( バインディング.mongocrypt_binary_new, バインディング.メソッド(:mongocrypt_binary_detry) ) end end |
クラスメソッドの詳細
。 from_data (データ) = Mongo::Crypt::Binary
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
string でバイナリ オブジェクトを初期化します。 バイナリ オブジェクトは指定された string のコピーを保存し、範囲を超えると割り当てられたメモリを破棄します。
87 88 89 |
# ファイル 'lib/mongo/crypt/binary.rb' 行 87 デフォルト 自己.from_data(データ) 自己.新着情報(データ: データ) end |
。 from_pointer (ポインター)= Mongo::Crypt::Binary
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
バイナリ オブジェクトを既存のポインターから mongocrypt_binary_t オブジェクトに初期化します。
76 77 78 |
# ファイル 'lib/mongo/crypt/binary.rb' 行 76 デフォルト 自己.from_pointer(ポインター) 自己.新着情報(ポインター: ポインター) end |
。 wrap_string (str) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
string を mongocrypt_binary_t でラップし、ラップされた構造体への FFI::Pointer を生成します。
145 146 147 148 149 150 151 152 153 154 155 |
# ファイル 'lib/mongo/crypt/binary.rb' 行 145 デフォルト 自己.wrap_string(str) binary_p = バインディング.mongocrypt_binary_new_from_data( FFI::MemoryPointer.from_string(str), str.bytesize, ) begin ノードの数 binary_p 保証する バインディング.mongocrypt_binary_detry(binary_p) end end |
インスタンス メソッドの詳細
参照: FFI::Pointer
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
基礎となる mongocrypt_binary_t オブジェクトへの参照を返します
139 140 141 |
# ファイル 'lib/mongo/crypt/binary.rb' 行 139 デフォルト 参照 @bin end |
# to_s = string
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
保存されたデータを string として返します
129 130 131 132 133 |
# ファイル 'lib/mongo/crypt/binary.rb' 行 129 デフォルト to_s str_p = バインディング.get_binary_data_direct(参照) len = バインディング.get_binary_en_direct(参照) str_p.read_string(len) end |
#write (データ) = true
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
で渡されるデータは、次よりも多くのメモリを要する必要があります:
このバイナリ オブジェクトによってラップされている既存のデータを上書きする
基礎となる mongocrypt_binary_t オブジェクトに割り当てられた元のメモリ。 libmongocrypt によって必要とされる場合を除き、このメソッドを使用しないでください。
が最初に割り当てられたよりも、 または すでにデータを持っているオブジェクトに書き込んだときに
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# ファイル 'lib/mongo/crypt/binary.rb' 行 104 デフォルト 書込み (write)(データ) 場合 @data 発生 ArgumentError, 「所有されているバイナリには書き込めません」 end # 現在割り当てられているスペースよりも長いstringは書き込めません mongocrypt_binary_t オブジェクトによる# str_p = バインディング.get_binary_data_direct(参照) len = バインディング.get_binary_en_direct(参照) 場合 len < データ.bytesize 発生 ArgumentError.新着情報( " #{ データ . バイト サイズ } バイトのデータをバイナリ オブジェクトに 書込み ( write) できません " + これは #{Binding . get_binary_en_direct ( @bin ) } バイトで初期化されました。 ) end str_p.put_bytes(0, データ) true end |