bool Connection::open() { if (_is_open) { return true; } CassCluster* cluster = cass_cluster_new(); cass_cluster_set_protocol_version(cluster, 2); cass_cluster_set_contact_points(cluster, _host_string); cass_cluster_set_port(cluster, _port); CassFuture* future = cass_cluster_connect(cluster); _session = cass_future_get_session(future); _is_open = cass_future_error_code(future) == CASS_OK && _session != nullptr; cass_future_free(future); cass_cluster_free(cluster); return _is_open; }
void CassDriver::CreateCluster() { int pos = FLAGS_contact_ip_and_port.find(':'); if (pos == std::string::npos) { printf("Wrong format in contact_ip_and_port, use ip:port !\n"); return; } std::string contact_point = FLAGS_contact_ip_and_port.substr(0, pos); std::string str_port = FLAGS_contact_ip_and_port.substr(pos + 1); int port = std::atoi(str_port.c_str()); cluster_ = cass_cluster_new(); cass_cluster_set_contact_points(cluster_, contact_point.c_str()); cass_cluster_set_port(cluster_, port); cass_cluster_set_log_level(cluster_, ParseLogLevel(FLAGS_log_level)); cass_cluster_set_num_threads_io(cluster_, FLAGS_num_threads_io); cass_cluster_set_queue_size_io(cluster_, FLAGS_queue_size_io); cass_cluster_set_pending_requests_low_water_mark(cluster_, FLAGS_pending_req_low); cass_cluster_set_pending_requests_high_water_mark(cluster_, FLAGS_pending_req_high); cass_cluster_set_core_connections_per_host(cluster_, FLAGS_core_connections); cass_cluster_set_max_connections_per_host(cluster_, FLAGS_max_connections); }