@@ -58,48 +58,50 @@ PHP_METHOD(Server, __construct)
58
58
phongo_throw_exception (PHONGO_ERROR_RUNTIME TSRMLS_CC , "Accessing private constructor" );
59
59
}
60
60
/* }}} */
61
- /* {{{ proto MongoDB\Driver\Cursor Server::executeCommand(string $db, MongoDB\Driver\Command $command)
61
+ /* {{{ proto MongoDB\Driver\Cursor Server::executeCommand(string $db, MongoDB\Driver\Command $command[, MongoDB\Driver\ReadPreference $readPreference = null]) )
62
62
Executes a command on this server */
63
63
PHP_METHOD (Server , executeCommand )
64
64
{
65
65
php_phongo_server_t * intern ;
66
66
char * db ;
67
67
int db_len ;
68
68
zval * command ;
69
+ zval * readPreference = NULL ;
69
70
php_phongo_command_t * cmd ;
70
71
(void )return_value_ptr ;
71
72
72
73
73
74
intern = (php_phongo_server_t * )zend_object_store_get_object (getThis () TSRMLS_CC );
74
75
75
- if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "sO" , & db , & db_len , & command , php_phongo_command_ce ) == FAILURE ) {
76
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "sO|O! " , & db , & db_len , & command , php_phongo_command_ce , & readPreference , php_phongo_readpreference_ce ) == FAILURE ) {
76
77
return ;
77
78
}
78
79
79
80
80
81
cmd = (php_phongo_command_t * )zend_object_store_get_object (command TSRMLS_CC );
81
- phongo_execute_command (intern -> client , db , cmd -> bson , NULL , intern -> server_id , return_value , return_value_used TSRMLS_CC );
82
+ phongo_execute_command (intern -> client , db , cmd -> bson , phongo_read_preference_from_zval ( readPreference TSRMLS_CC ) , intern -> server_id , return_value , return_value_used TSRMLS_CC );
82
83
}
83
84
/* }}} */
84
- /* {{{ proto MongoDB\Driver\Cursor Server::executeQuery(string $namespace, MongoDB\Driver\Query $zquery)
85
+ /* {{{ proto MongoDB\Driver\Cursor Server::executeQuery(string $namespace, MongoDB\Driver\Query $zquery[, MongoDB\Driver\ReadPreference $readPreference = null]) )
85
86
Executes a Query */
86
87
PHP_METHOD (Server , executeQuery )
87
88
{
88
89
php_phongo_server_t * intern ;
89
90
char * namespace ;
90
91
int namespace_len ;
91
92
zval * zquery ;
93
+ zval * readPreference = NULL ;
92
94
(void )return_value_ptr ;
93
95
94
96
95
97
intern = (php_phongo_server_t * )zend_object_store_get_object (getThis () TSRMLS_CC );
96
98
97
- if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "sO" , & namespace , & namespace_len , & zquery , php_phongo_query_ce ) == FAILURE ) {
99
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "sO|O! " , & namespace , & namespace_len , & zquery , php_phongo_query_ce , & readPreference , php_phongo_readpreference_ce ) == FAILURE ) {
98
100
return ;
99
101
}
100
102
101
103
102
- phongo_execute_query (intern -> client , namespace , phongo_query_from_zval (zquery TSRMLS_CC ), NULL , intern -> server_id , return_value , return_value_used TSRMLS_CC );
104
+ phongo_execute_query (intern -> client , namespace , phongo_query_from_zval (zquery TSRMLS_CC ), phongo_read_preference_from_zval ( readPreference TSRMLS_CC ) , intern -> server_id , return_value , return_value_used TSRMLS_CC );
103
105
}
104
106
/* }}} */
105
107
/* {{{ proto MongoDB\Driver\WriteResult Server::executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $zbulk[, MongoDB\Driver\WriteConcern $writeConcern = null])
@@ -391,11 +393,13 @@ PHP_METHOD(Server, isPassive)
391
393
ZEND_BEGIN_ARG_INFO_EX (ai_Server_executeCommand , 0 , 0 , 2 )
392
394
ZEND_ARG_INFO (0 , db )
393
395
ZEND_ARG_OBJ_INFO (0 , command , MongoDB \\Driver \\Command , 0 )
396
+ ZEND_ARG_OBJ_INFO (0 , readPreference , MongoDB \\Driver \\ReadPreference , 1 )
394
397
ZEND_END_ARG_INFO ();
395
398
396
399
ZEND_BEGIN_ARG_INFO_EX (ai_Server_executeQuery , 0 , 0 , 2 )
397
400
ZEND_ARG_INFO (0 , namespace )
398
401
ZEND_ARG_OBJ_INFO (0 , zquery , MongoDB \\Driver \\Query , 0 )
402
+ ZEND_ARG_OBJ_INFO (0 , readPreference , MongoDB \\Driver \\ReadPreference , 1 )
399
403
ZEND_END_ARG_INFO ();
400
404
401
405
ZEND_BEGIN_ARG_INFO_EX (ai_Server_executeBulkWrite , 0 , 0 , 2 )
0 commit comments