#include "core/core.h" #include namespace location { namespace nearby { namespace connections { template Core::Core() : client_proxy_(new ClientProxy()), service_controller_router_(new ServiceControllerRouter()) {} template Core::~Core() { service_controller_router_->clientDisconnecting(client_proxy_.get()); } template void Core::startAdvertising( ConstPtr start_advertising_params) { assert(!start_advertising_params->result_listener.isNull()); assert(!start_advertising_params->connection_lifecycle_listener.isNull()); assert(!start_advertising_params->service_id.empty()); assert(start_advertising_params->advertising_options.strategy.isValid()); service_controller_router_->startAdvertising(client_proxy_.get(), start_advertising_params); } template void Core::stopAdvertising( ConstPtr stop_advertising_params) { service_controller_router_->stopAdvertising(client_proxy_.get(), stop_advertising_params); } template void Core::startDiscovery( ConstPtr start_discovery_params) { assert(!start_discovery_params->result_listener.isNull()); assert(!start_discovery_params->discovery_listener.isNull()); assert(!start_discovery_params->service_id.empty()); assert(start_discovery_params->discovery_options.strategy.isValid()); service_controller_router_->startDiscovery(client_proxy_.get(), start_discovery_params); } template void Core::stopDiscovery( ConstPtr stop_discovery_params) { service_controller_router_->stopDiscovery(client_proxy_.get(), stop_discovery_params); } template void Core::requestConnection( ConstPtr request_connection_params) { assert(!request_connection_params->result_listener.isNull()); assert(!request_connection_params->connection_lifecycle_listener.isNull()); assert(!request_connection_params->remote_endpoint_id.empty()); service_controller_router_->requestConnection(client_proxy_.get(), request_connection_params); } template void Core::acceptConnection( ConstPtr accept_connection_params) { assert(!accept_connection_params->result_listener.isNull()); assert(!accept_connection_params->payload_listener.isNull()); assert(!accept_connection_params->remote_endpoint_id.empty()); service_controller_router_->acceptConnection(client_proxy_.get(), accept_connection_params); } template void Core::rejectConnection( ConstPtr reject_connection_params) { assert(!reject_connection_params->result_listener.isNull()); assert(!reject_connection_params->remote_endpoint_id.empty()); service_controller_router_->rejectConnection(client_proxy_.get(), reject_connection_params); } template void Core::initiateBandwidthUpgrade( ConstPtr initiate_bandwidth_upgrade_params) { service_controller_router_->initiateBandwidthUpgrade( client_proxy_.get(), initiate_bandwidth_upgrade_params); } template void Core::sendPayload( ConstPtr send_payload_params) { assert(!send_payload_params->result_listener.isNull()); assert(!send_payload_params->remote_endpoint_ids.empty()); assert(!send_payload_params->payload.isNull()); // TODO(tracyzhou): Do sanity check on payload based on payload type. service_controller_router_->sendPayload(client_proxy_.get(), send_payload_params); } template void Core::cancelPayload( ConstPtr cancel_payload_params) { assert(!cancel_payload_params->result_listener.isNull()); assert(cancel_payload_params->payload_id != 0); service_controller_router_->cancelPayload(client_proxy_.get(), cancel_payload_params); } template void Core::disconnectFromEndpoint( ConstPtr disconnect_from_endpoint_params) { assert(!disconnect_from_endpoint_params->remote_endpoint_id.empty()); service_controller_router_->disconnectFromEndpoint( client_proxy_.get(), disconnect_from_endpoint_params); } template void Core::stopAllEndpoints( ConstPtr stop_all_endpoints_params) { service_controller_router_->stopAllEndpoints(client_proxy_.get(), stop_all_endpoints_params); } } // namespace connections } // namespace nearby } // namespace location