void on_create_table(CassFuture* future, void* data) { const char* insert_query = "INSERT INTO callbacks (key, value) " "VALUES (?, ?)"; CassUuid key; CassStatement* statement = NULL; CassFuture* insert_future = NULL; CassError code = cass_future_error_code(future); if (code != CASS_OK) { print_error(future); } statement = cass_statement_new(insert_query, 2); cass_uuid_gen_time(uuid_gen, &key); cass_statement_bind_uuid(statement, 0, key); cass_statement_bind_int64(statement, 1, cass_uuid_timestamp(key)); insert_future = cass_session_execute((CassSession*)data, statement); cass_future_set_callback(insert_future, on_insert, data); cass_statement_free(statement); cass_future_free(insert_future); }
/* {{{ Cassandra\Timeuuid::value() */ PHP_METHOD(Timeuuid, time) { cassandra_uuid* uuid; uuid = (cassandra_uuid*) zend_object_store_get_object(getThis() TSRMLS_CC); RETURN_LONG((long) (cass_uuid_timestamp(uuid->uuid) / 1000)); }
/* {{{ Cassandra\Timeuuid::value() */ PHP_METHOD(Timeuuid, toDateTime) { cassandra_uuid* uuid; zval* datetime; php_date_obj* datetime_obj; char* str; int str_len; if (zend_parse_parameters_none() == FAILURE) { return; } uuid = (cassandra_uuid*) zend_object_store_get_object(getThis() TSRMLS_CC); MAKE_STD_ZVAL(datetime); php_date_instantiate(php_date_get_date_ce(), datetime TSRMLS_CC); datetime_obj = zend_object_store_get_object(datetime TSRMLS_CC); str_len = spprintf(&str, 0, "@%ld", (long) (cass_uuid_timestamp(uuid->uuid) / 1000)); php_date_initialize(datetime_obj, str, str_len, NULL, NULL, 0 TSRMLS_CC); efree(str); RETVAL_ZVAL(datetime, 0, 0); }