MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / executeDyn

Method executeDyn

src/remote/client/interface.cpp:2125–2168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2123
2124
2125void Attachment::executeDyn(CheckStatusWrapper* status, ITransaction* apiTra, unsigned int length,
2126 const unsigned char* dyn)
2127{
2128/**************************************
2129 *
2130 * g d s _ d d l
2131 *
2132 **************************************
2133 *
2134 * Functional description
2135 *
2136 **************************************/
2137 try
2138 {
2139 reset(status);
2140
2141 CHECK_HANDLE(rdb, isc_bad_db_handle);
2142 rem_port* port = rdb->rdb_port;
2143 RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION);
2144
2145 Rtr* transaction = remoteTransaction(apiTra);
2146 CHECK_HANDLE(transaction, isc_bad_trans_handle);
2147
2148 // Validate data length
2149
2150 CHECK_LENGTH(port, length);
2151
2152 // Make up a packet for the remote guy
2153
2154 PACKET* packet = &rdb->rdb_packet;
2155 packet->p_operation = op_ddl;
2156 P_DDL* ddl = &packet->p_ddl;
2157 ddl->p_ddl_database = rdb->rdb_id;
2158 ddl->p_ddl_transaction = transaction->rtr_id;
2159 ddl->p_ddl_blr.cstr_length = length;
2160 ddl->p_ddl_blr.cstr_address = dyn;
2161
2162 send_and_receive(status, rdb, packet);
2163 }
2164 catch (const Exception& ex)
2165 {
2166 ex.stuffException(status);
2167 }
2168}
2169
2170
2171void Attachment::freeClientData(CheckStatusWrapper* status, bool force)

Callers 1

ddlMethod · 0.45

Calls 5

CHECK_HANDLEFunction · 0.85
CHECK_LENGTHFunction · 0.85
send_and_receiveFunction · 0.85
resetFunction · 0.70
stuffExceptionMethod · 0.45

Tested by

no test coverage detected