示例#1
0
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);
}