12008747941749ad27fe80663d23036ac320e998fJason Sams/* 22008747941749ad27fe80663d23036ac320e998fJason Sams * Copyright (C) 2011 The Android Open Source Project 32008747941749ad27fe80663d23036ac320e998fJason Sams * 42008747941749ad27fe80663d23036ac320e998fJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 52008747941749ad27fe80663d23036ac320e998fJason Sams * you may not use this file except in compliance with the License. 62008747941749ad27fe80663d23036ac320e998fJason Sams * You may obtain a copy of the License at 72008747941749ad27fe80663d23036ac320e998fJason Sams * 82008747941749ad27fe80663d23036ac320e998fJason Sams * http://www.apache.org/licenses/LICENSE-2.0 92008747941749ad27fe80663d23036ac320e998fJason Sams * 102008747941749ad27fe80663d23036ac320e998fJason Sams * Unless required by applicable law or agreed to in writing, software 112008747941749ad27fe80663d23036ac320e998fJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 122008747941749ad27fe80663d23036ac320e998fJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132008747941749ad27fe80663d23036ac320e998fJason Sams * See the License for the specific language governing permissions and 142008747941749ad27fe80663d23036ac320e998fJason Sams * limitations under the License. 152008747941749ad27fe80663d23036ac320e998fJason Sams */ 162008747941749ad27fe80663d23036ac320e998fJason Sams 172008747941749ad27fe80663d23036ac320e998fJason Sams#ifndef ANDROID_RS_FIFO_SOCKET_H 182008747941749ad27fe80663d23036ac320e998fJason Sams#define ANDROID_RS_FIFO_SOCKET_H 192008747941749ad27fe80663d23036ac320e998fJason Sams 202008747941749ad27fe80663d23036ac320e998fJason Sams 212008747941749ad27fe80663d23036ac320e998fJason Sams#include "rsFifo.h" 222008747941749ad27fe80663d23036ac320e998fJason Sams 232008747941749ad27fe80663d23036ac320e998fJason Samsnamespace android { 242008747941749ad27fe80663d23036ac320e998fJason Samsnamespace renderscript { 252008747941749ad27fe80663d23036ac320e998fJason Sams 262008747941749ad27fe80663d23036ac320e998fJason Sams 272008747941749ad27fe80663d23036ac320e998fJason Samsclass FifoSocket { 282008747941749ad27fe80663d23036ac320e998fJason Samspublic: 292008747941749ad27fe80663d23036ac320e998fJason Sams FifoSocket(); 302008747941749ad27fe80663d23036ac320e998fJason Sams virtual ~FifoSocket(); 312008747941749ad27fe80663d23036ac320e998fJason Sams 325f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams bool init(bool supportNonBlocking = true, 335f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams bool supportReturnValues = true, 345f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams size_t maxDataSize = 0); 352008747941749ad27fe80663d23036ac320e998fJason Sams void shutdown(); 362008747941749ad27fe80663d23036ac320e998fJason Sams 375f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams bool writeAsync(const void *data, size_t bytes, bool waitForSpace = true); 385f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams void writeWaitReturn(void *ret, size_t retSize); 395f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams size_t read(void *data, size_t bytes); 405f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams void readReturn(const void *data, size_t bytes); 415f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams bool isEmpty(); 422008747941749ad27fe80663d23036ac320e998fJason Sams 435f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams int getWriteFd() {return sv[0];} 445f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams int getReadFd() {return sv[1];} 452008747941749ad27fe80663d23036ac320e998fJason Sams 462008747941749ad27fe80663d23036ac320e998fJason Samsprotected: 472008747941749ad27fe80663d23036ac320e998fJason Sams int sv[2]; 485f27d6fb0b0b9184ba9820c629fc1354a635e515Jason Sams bool mShutdown; 492008747941749ad27fe80663d23036ac320e998fJason Sams}; 502008747941749ad27fe80663d23036ac320e998fJason Sams 512008747941749ad27fe80663d23036ac320e998fJason Sams} 522008747941749ad27fe80663d23036ac320e998fJason Sams} 532008747941749ad27fe80663d23036ac320e998fJason Sams 542008747941749ad27fe80663d23036ac320e998fJason Sams#endif 55