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