1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
extern crate libc; use api::ErrorCode; //use errors::ToErrorCode; //use commands::{Command, CommandExecutor}; //use utils::cstring::CStringUtils; use self::libc::c_char; /// Establishes agent to agent connection. /// /// Information about sender Identity must be saved in the wallet with sovrin_create_and_store_my_did /// call before establishing of connection. /// /// Information about receiver Identity can be saved in the wallet with sovrin_store_their_did /// call before establishing of connection. If there is no corresponded wallet record for receiver Identity /// than this call will lookup Identity Ledger and cache this information in the wallet. /// /// Note that messages encryption/decryption will be performed automatically. /// /// #Params /// command_handle: Command handle to map callback to caller context. /// wallet_handle: Wallet handle (created by open_wallet). /// sender_did: Id of sender Identity stored in secured Wallet. /// receiver_did: Id of receiver Identity. /// connection_cb: Callback that will be called after establishing of connection or on error. /// message_cb: Callback that will be called on receiving of an incomming message. /// /// #Returns /// Error code /// connection_cb: /// - xcommand_handle: command handle to map callback to caller context. /// - err: Error code. /// - connection_handle: Connection handle to use for messages sending and mapping of incomming messages to this connection. /// message_cb: /// - xconnection_handle: Connection handle. Indetnifies connection. /// - err: Error code. /// - message: Received message. #[no_mangle] pub extern fn sovrin_agent_connect(command_handle: i32, wallet_handle: i32, sender_did: *const c_char, receiver_did: *const c_char, connection_cb: Option<extern fn(xcommand_handle: i32, err: ErrorCode, connection_handle: i32)>, message_cb: Option<extern fn(xconnection_handle: i32, err: ErrorCode, message: *const c_char)>) -> ErrorCode { unimplemented!() } /// Starts listening of agent connections. /// /// On incomming connection listener performs wallet lookup to find corresponded receiver Identity /// information. Information about receiver Identity must be saved in the wallet with /// sovrin_create_and_store_my_did call before establishing of connection. /// /// Information about sender Identity for incomming connection validation can be saved in the wallet /// with sovrin_store_their_did call before establishing of connection. If there is no corresponded /// wallet record for sender Identity than listener will lookup Identity Ledger and cache this /// information in the wallet. /// /// Note that messages encryption/decryption will be performed automatically. /// /// #Params /// command_handle: command handle to map callback to caller context. /// wallet_handle: wallet handle (created by open_wallet). /// listener_cb: Callback that will be called after listening started or on error. /// connection_cb: Callback that will be called after establishing of incomming connection. /// message_cb: Callback that will be called on receiving of an incomming message. /// /// #Returns /// Error code /// listener_cb: /// - xcommand_handle: command handle to map callback to caller context. /// - err: Error code /// - listener_handle: Listener handle to use for mapping of incomming connections to this listener. /// connection_cb: /// - xlistener_handle: Listener handle. Identifies listener. /// - err: Error code /// - connection_handle: Connection handle to use for messages sending and mapping of incomming messages to to this connection. /// - sender_did: Id of sender Identity stored in secured Wallet. /// - receiver_did: Id of receiver Identity. /// message_cb: /// - xconnection_handle: Connection handle. Indetnifies connection. /// - err: Error code. /// - message: Received message. #[no_mangle] pub extern fn sovrin_agent_listen(command_handle: i32, wallet_handle: i32, listener_cb: Option<extern fn(xcommand_handle: i32, err: ErrorCode, listener_handle: i32)>, connection_cb: Option<extern fn(xlistener_handle: i32, err: ErrorCode, connection_handle: i32, sender_did: *const c_char, receiver_did: *const c_char)>, message_cb: Option<extern fn(xconnection_handle: i32, err: ErrorCode, message: *const c_char)>) -> ErrorCode { unimplemented!() } /// Sends message to connected agent. /// /// Note that this call works for both incoming and outgoing connections. /// Note that messages encryption/decryption will be performed automatically. /// /// #Params /// command_handle: command handle to map callback to caller context. /// connection_handle: Connection handle returned by sovrin_agent_connect or sovrin_agent_listen calls. /// message: Message to send. /// cb: Callback that will be called after message sent or on error. /// /// #Returns /// err: Error code /// cb: /// - xcommand_handle: Command handle to map callback to caller context. /// - err: Error code /// /// #Errors #[no_mangle] pub extern fn sovrin_agent_send(command_handle: i32, connection_handle: i32, message: *const c_char, cb: Option<extern fn(xcommand_handle: i32, err: ErrorCode)>) -> ErrorCode { unimplemented!() } /// Closes agent connection. /// /// Note that this call works for both incoming and outgoing connections. /// /// #Params /// command_handle: command handle to map callback to caller context. /// connection_handle: Connection handle returned by sovrin_agent_connect or sovrin_agent_listen calls. /// cb: Callback that will be called after connection closed or on error. /// /// #Returns /// Error code /// cb: /// - xcommand_handle: command handle to map callback to caller context. /// - err: Error code /// /// #Errors #[no_mangle] pub extern fn sovrin_agent_close_connection(command_handle: i32, connection_handle: i32, cb: Option<extern fn(xcommand_handle: i32, err: ErrorCode)>) -> ErrorCode { unimplemented!() } /// Closes listener and stops listening for agent connections. /// /// Note that all opened incomming connections will be closed automatically. /// /// #Params /// command_handle: command handle to map callback to caller context. /// listener_handle: Listener handle returned by sovrin_agent_listen call. /// cb: Callback that will be called after listener closed or on error. /// /// #Returns /// Error code /// cb: /// - xcommand_handle: command handle to map callback to caller context. /// - err: Error code /// /// #Errors #[no_mangle] pub extern fn sovrin_agent_close_listener(command_handle: i32, listener_handle: i32, cb: Option<extern fn(xcommand_handle: i32, err: ErrorCode)>) -> ErrorCode { unimplemented!() }