1use super::*;
2
3use {BString, CString, Error, CommandHandle, StorageHandle};
4
5extern {
6
7 #[no_mangle]
8 pub fn indy_register_wallet_storage(command_handle: CommandHandle,
9 type_: CString,
10 create: Option<WalletCreate>,
11 open: Option<WalletOpen>,
12 close: Option<WalletClose>,
13 delete: Option<WalletDelete>,
14 add_record: Option<WalletAddRecord>,
15 update_record_value: Option<WalletUpdateRecordValue>,
16 update_record_tags: Option<WalletUpdateRecordTags>,
17 add_record_tags: Option<WalletAddRecordTags>,
18 delete_record_tags: Option<WalletDeleteRecordTags>,
19 delete_record: Option<WalletDeleteRecord>,
20 get_record: Option<WalletGetRecord>,
21 get_record_id: Option<WalletGetRecordId>,
22 get_record_type: Option<WalletGetRecordType>,
23 get_record_value: Option<WalletGetRecordValue>,
24 get_record_tags: Option<WalletGetRecordTags>,
25 free_record: Option<WalletFreeRecord>,
26 get_storage_metadata: Option<WalletGetStorageMetadata>,
27 set_storage_metadata: Option<WalletSetStorageMetadata>,
28 free_storage_metadata: Option<WalletFreeStorageMetadata>,
29 search_records: Option<WalletSearchRecords>,
30 search_all_records: Option<WalletSearchAllRecords>,
31 get_search_total_count: Option<WalletGetSearchTotalCount>,
32 fetch_search_next_record: Option<WalletFetchSearchNextRecord>,
33 free_search: Option<WalletFreeSearch>,
34 cb: Option<ResponseEmptyCB>) -> Error;
35
36 #[no_mangle]
37 pub fn indy_create_wallet(command_handle: CommandHandle,
38 config: CString,
39 credentials: CString,
40 cb: Option<ResponseEmptyCB>) -> Error;
41
42 #[no_mangle]
43 pub fn indy_open_wallet(command_handle: CommandHandle,
44 config: CString,
45 credentials: CString,
46 cb: Option<ResponseWalletHandleCB>) -> Error;
47
48 #[no_mangle]
49 pub fn indy_export_wallet(command_handle: CommandHandle,
50 wallet_handle: WalletHandle,
51 export_config: CString,
52 cb: Option<ResponseEmptyCB>) -> Error;
53
54 #[no_mangle]
55 pub fn indy_import_wallet(command_handle: CommandHandle,
56 config: CString,
57 credentials: CString,
58 import_config: CString,
59 cb: Option<ResponseEmptyCB>) -> Error;
60
61 #[no_mangle]
62 pub fn indy_close_wallet(command_handle: CommandHandle,
63 wallet_handle: WalletHandle,
64 cb: Option<ResponseEmptyCB>) -> Error;
65
66 #[no_mangle]
67 pub fn indy_delete_wallet(command_handle: CommandHandle,
68 config: CString,
69 credentials: CString,
70 cb: Option<ResponseEmptyCB>) -> Error;
71
72 #[no_mangle]
73 pub fn indy_generate_wallet_key(command_handle: CommandHandle,
74 config: CString,
75 cb: Option<ResponseStringCB>) -> Error;
76}
77
78pub type WalletCreate = extern fn(name: CString,
79 config: CString,
80 credentials_json: CString,
81 metadata: CString) -> Error;
82pub type WalletOpen = extern fn(name: CString,
83 config: CString,
84 credentials_json: CString,
85 storage_handle_p: *mut StorageHandle) -> Error;
86pub type WalletClose = extern fn(storage_handle: StorageHandle) -> Error;
87pub type WalletDelete = extern fn(name: CString,
88 config: CString,
89 credentials_json: CString) -> Error;
90pub type WalletAddRecord = extern fn(storage_handle: StorageHandle,
91 type_: CString,
92 id: CString,
93 value: BString,
94 value_len: usize,
95 tags_json: CString) -> Error;
96pub type WalletUpdateRecordValue = extern fn(storage_handle: StorageHandle,
97 type_: CString,
98 id: CString,
99 value: BString,
100 value_len: usize, ) -> Error;
101pub type WalletUpdateRecordTags = extern fn(storage_handle: StorageHandle,
102 type_: CString,
103 id: CString,
104 tags_json: CString) -> Error;
105pub type WalletAddRecordTags = extern fn(storage_handle: StorageHandle,
106 type_: CString,
107 id: CString,
108 tags_json: CString) -> Error;
109pub type WalletDeleteRecordTags = extern fn(storage_handle: StorageHandle,
110 type_: CString,
111 id: CString,
112 tag_names_json: CString) -> Error;
113pub type WalletDeleteRecord = extern fn(storage_handle: StorageHandle,
114 type_: CString,
115 id: CString) -> Error;
116pub type WalletGetRecord = extern fn(storage_handle: StorageHandle,
117 type_: CString,
118 id: CString,
119 options_json: CString,
120 record_handle_p: *mut RecordHandle) -> Error;
121pub type WalletGetRecordId = extern fn(storage_handle: StorageHandle,
122 record_handle: RecordHandle,
123 record_id_p: *mut CString) -> Error;
124pub type WalletGetRecordType = extern fn(storage_handle: StorageHandle,
125 record_handle: RecordHandle,
126 record_type_p: *mut CString) -> Error;
127pub type WalletGetRecordValue = extern fn(storage_handle: StorageHandle,
128 record_handle: RecordHandle,
129 record_value_p: *mut BString,
130 record_value_len_p: *mut usize) -> Error;
131pub type WalletGetRecordTags = extern fn(storage_handle: StorageHandle,
132 record_handle: RecordHandle,
133 record_tags_p: *mut CString) -> Error;
134pub type WalletFreeRecord = extern fn(storage_handle: StorageHandle,
135 record_handle: RecordHandle) -> Error;
136pub type WalletGetStorageMetadata = extern fn(storage_handle: StorageHandle,
137 metadata_p: *mut CString,
138 metadata_handle: *mut MetadataHandle) -> Error;
139pub type WalletSetStorageMetadata = extern fn(storage_handle: StorageHandle,
140 metadata_p: CString) -> Error;
141pub type WalletFreeStorageMetadata = extern fn(storage_handle: StorageHandle,
142 metadata_handle: MetadataHandle) -> Error;
143pub type WalletSearchRecords = extern fn(storage_handle: StorageHandle,
144 type_: CString,
145 query_json: CString,
146 options_json: CString,
147 search_handle_p: *mut SearchHandle) -> Error;
148pub type WalletSearchAllRecords = extern fn(storage_handle: StorageHandle,
149 search_handle_p: *mut SearchHandle) -> Error;
150pub type WalletGetSearchTotalCount = extern fn(storage_handle: StorageHandle,
151 search_handle: SearchHandle,
152 total_count_p: *mut usize) -> Error;
153pub type WalletFetchSearchNextRecord = extern fn(storage_handle: StorageHandle,
154 search_handle: SearchHandle,
155 record_handle_p: *mut RecordHandle) -> Error;
156pub type WalletFreeSearch = extern fn(storage_handle: StorageHandle,
157 search_handle: SearchHandle) -> Error;