bool IOWorker::remove_pool_async(const Address& address, bool cancel_reconnect) { IOWorkerEvent event; event.type = IOWorkerEvent::REMOVE_POOL; event.address = address; event.cancel_reconnect = cancel_reconnect; return send_event_async(event); }
bool IOWorker::add_pool_async(const Address& address, bool is_initial_connection) { IOWorkerEvent event; event.type = IOWorkerEvent::ADD_POOL; event.address = address; event.is_initial_connection = is_initial_connection; return send_event_async(event); }
void Session::connect_async(const Config& config, const std::string& keyspace, Future* future) { ScopedMutex l(&state_mutex_); if (state_.load(MEMORY_ORDER_RELAXED) != SESSION_STATE_CLOSED) { future->set_error(CASS_ERROR_LIB_UNABLE_TO_CONNECT, "Already connecting, connected or closed"); return; } clear(config); if (init() != 0) { future->set_error(CASS_ERROR_LIB_UNABLE_TO_INIT, "Error initializing session"); return; } SessionEvent event; event.type = SessionEvent::CONNECT; if (!send_event_async(event)) { future->set_error(CASS_ERROR_LIB_UNABLE_TO_CONNECT, "Unable to enqueue connected event"); return; } LOG_DEBUG("Issued connect event"); state_.store(SESSION_STATE_CONNECTING, MEMORY_ORDER_RELAXED); connect_future_.reset(future); if (!keyspace.empty()) { broadcast_keyspace_change(keyspace, NULL); } // If this is a reconnect then the old thread needs to be // joined before creating a new thread. join(); run(); }
bool Session::notify_down_async(const Address& address) { SessionEvent event; event.type = SessionEvent::NOTIFY_DOWN; event.address = address; return send_event_async(event); }
bool Session::notify_worker_closed_async() { SessionEvent event; event.type = SessionEvent::NOTIFY_WORKER_CLOSED; return send_event_async(event); }
bool Session::notify_keyspace_error_async() { SessionEvent event; event.type = SessionEvent::NOTIFY_KEYSPACE_ERROR; return send_event_async(event); }
bool Session::notify_ready_async() { SessionEvent event; event.type = SessionEvent::NOTIFY_READY; return send_event_async(event); }