@@ -227,6 +227,14 @@ typedef struct CassResult_ CassResult;
227227 */
228228typedef struct CassErrorResult_ CassErrorResult ;
229229
230+
231+ /**
232+ * An object that represents a cluster node.
233+ *
234+ * @struct CassNode
235+ */
236+ typedef struct CassNode_ CassNode ;
237+
230238/**
231239 * An object used to iterate over a group of rows, columns or collection values.
232240 *
@@ -5002,6 +5010,21 @@ cass_future_custom_payload_item(CassFuture* future,
50025010 const cass_byte_t * * value ,
50035011 size_t * value_size );
50045012
5013+ /**
5014+ * Gets the node that acted as coordinator for this query. If the future is not
5015+ * ready this method will wait for the future to be set.
5016+ *
5017+ * @param future
5018+ * @return The coordinator node that handled the query. The lifetime of this
5019+ * object is the same as the result object it came from. NULL can be returned
5020+ * if the future is not a response future or if an error occurs before a
5021+ * coordinator responds.
5022+ *
5023+ * @see cass_statement_set_node()
5024+ */
5025+ CASS_EXPORT const CassNode *
5026+ cass_future_coordinator (CassFuture * future );
5027+
50055028/***********************************************************************************
50065029 *
50075030 * Statement
@@ -5395,6 +5418,21 @@ cass_statement_set_host_inet(CassStatement* statement,
53955418 const CassInet * host ,
53965419 int port );
53975420
5421+ /**
5422+ * Same as cass_statement_set_host(), but using the `CassNode` type. This can
5423+ * be used to re-query the same coordinator when used with the result of
5424+ * `cass_future_coordinator()`
5425+ *
5426+ * @param statement
5427+ * @param address
5428+ * @return CASS_OK if successful, otherwise an error occurred.
5429+ *
5430+ * @see cass_future_coordinator()
5431+ */
5432+ CASS_EXPORT CassError
5433+ cass_statement_set_node (CassStatement * statement ,
5434+ const CassNode * node );
5435+
53985436/**
53995437 * Binds null to a query or bound statement at the specified index.
54005438 *
0 commit comments