1c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Copyright (C) 2014 The Android Open Source Project 3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Licensed under the Apache License, Version 2.0 (the "License"); 5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// you may not use this file except in compliance with the License. 6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// You may obtain a copy of the License at 7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// http://www.apache.org/licenses/LICENSE-2.0 9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Unless required by applicable law or agreed to in writing, software 11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// distributed under the License is distributed on an "AS IS" BASIS, 12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// See the License for the specific language governing permissions and 14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// limitations under the License. 15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 1637a2b60098f7404a0faa918694072670de1a0a97Peter Qiu 178d6b59704591ba9fad57751858835dc332dbdd37Peter Qiu#include "shill/net/io_handler_factory.h" 1837a2b60098f7404a0faa918694072670de1a0a97Peter Qiu 198d6b59704591ba9fad57751858835dc332dbdd37Peter Qiu#include "shill/net/io_input_handler.h" 208d6b59704591ba9fad57751858835dc332dbdd37Peter Qiu#include "shill/net/io_ready_handler.h" 2137a2b60098f7404a0faa918694072670de1a0a97Peter Qiu 2237a2b60098f7404a0faa918694072670de1a0a97Peter Qiunamespace shill { 2337a2b60098f7404a0faa918694072670de1a0a97Peter Qiu 2437a2b60098f7404a0faa918694072670de1a0a97Peter QiuIOHandlerFactory::IOHandlerFactory() {} 2537a2b60098f7404a0faa918694072670de1a0a97Peter QiuIOHandlerFactory::~IOHandlerFactory() {} 2637a2b60098f7404a0faa918694072670de1a0a97Peter Qiu 27e67a78539a05ea7fc68ed5ca18f6d1de333a3086Paul StewartIOHandler* IOHandlerFactory::CreateIOInputHandler( 2837a2b60098f7404a0faa918694072670de1a0a97Peter Qiu int fd, 29e67a78539a05ea7fc68ed5ca18f6d1de333a3086Paul Stewart const IOHandler::InputCallback& input_callback, 30e67a78539a05ea7fc68ed5ca18f6d1de333a3086Paul Stewart const IOHandler::ErrorCallback& error_callback) { 31e67a78539a05ea7fc68ed5ca18f6d1de333a3086Paul Stewart IOHandler* handler = new IOInputHandler(fd, input_callback, error_callback); 3237a2b60098f7404a0faa918694072670de1a0a97Peter Qiu handler->Start(); 3337a2b60098f7404a0faa918694072670de1a0a97Peter Qiu return handler; 3437a2b60098f7404a0faa918694072670de1a0a97Peter Qiu} 3537a2b60098f7404a0faa918694072670de1a0a97Peter Qiu 36e67a78539a05ea7fc68ed5ca18f6d1de333a3086Paul StewartIOHandler* IOHandlerFactory::CreateIOReadyHandler( 3737a2b60098f7404a0faa918694072670de1a0a97Peter Qiu int fd, 3837a2b60098f7404a0faa918694072670de1a0a97Peter Qiu IOHandler::ReadyMode mode, 39e67a78539a05ea7fc68ed5ca18f6d1de333a3086Paul Stewart const IOHandler::ReadyCallback& ready_callback) { 40e67a78539a05ea7fc68ed5ca18f6d1de333a3086Paul Stewart IOHandler* handler = new IOReadyHandler(fd, mode, ready_callback); 4137a2b60098f7404a0faa918694072670de1a0a97Peter Qiu handler->Start(); 4237a2b60098f7404a0faa918694072670de1a0a97Peter Qiu return handler; 4337a2b60098f7404a0faa918694072670de1a0a97Peter Qiu} 4437a2b60098f7404a0faa918694072670de1a0a97Peter Qiu 4537a2b60098f7404a0faa918694072670de1a0a97Peter Qiu} // namespace shill 46