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

Method start_and_send

src/remote/server/server.cpp:6772–6816  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6770
6771
6772ISC_STATUS rem_port::start_and_send(P_OP operation, P_DATA* data, PACKET* sendL)
6773{
6774/**************************************
6775 *
6776 * s t a r t _ a n d _ s e n d
6777 *
6778 **************************************
6779 *
6780 * Functional description
6781 *
6782 **************************************/
6783 LocalStatus ls;
6784 CheckStatusWrapper status_vector(&ls);
6785 Rtr* transaction;
6786 getHandle(transaction, data->p_data_transaction);
6787
6788 Rrq* requestL;
6789 getHandle(requestL, data->p_data_request);
6790
6791 requestL = REMOTE_find_request(requestL, data->p_data_incarnation);
6792 const USHORT number = data->p_data_message_number;
6793
6794 if (number > requestL->rrq_max_msg)
6795 {
6796 (Arg::Gds(isc_badmsgnum)).copyTo(&status_vector);
6797 return this->send_response(sendL, 0, 0, &status_vector, false);
6798 }
6799
6800 RMessage* message = requestL->rrq_rpt[number].rrq_message;
6801 const rem_fmt* format = requestL->rrq_rpt[number].rrq_format;
6802 REMOTE_reset_request(requestL, message);
6803
6804 requestL->rrq_iface->startAndSend(&status_vector,
6805 transaction->rtr_iface, data->p_data_incarnation,
6806 number, format->fmt_length, message->msg_address);
6807
6808 if (!(status_vector.getState() & IStatus::STATE_ERRORS))
6809 {
6810 requestL->rrq_rtr = transaction;
6811 if (operation == op_start_send_and_receive)
6812 return this->receive_after_start(data, sendL, &status_vector);
6813 }
6814
6815 return this->send_response(sendL, 0, 0, &status_vector, false);
6816}
6817
6818
6819ISC_STATUS rem_port::start_transaction(P_OP operation, P_STTR * stuff, PACKET* sendL)

Callers 1

process_packetFunction · 0.80

Calls 8

send_responseMethod · 0.95
receive_after_startMethod · 0.95
REMOTE_find_requestFunction · 0.85
GdsClass · 0.85
REMOTE_reset_requestFunction · 0.85
copyToMethod · 0.45
startAndSendMethod · 0.45
getStateMethod · 0.45

Tested by

no test coverage detected