Home | History | Annotate | Download | only in decoder
      1 /*
      2  * Copyright (C) 2010 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 #ifndef __FWDLOCKFILE_H__
     18 #define __FWDLOCKFILE_H__
     19 
     20 #ifdef __cplusplus
     21 extern "C" {
     22 #endif
     23 
     24 #include <sys/types.h>
     25 
     26 /**
     27  * Attaches to an open Forward Lock file. The file position is assumed to be at the beginning of the
     28  * file.
     29  *
     30  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
     31  *
     32  * @return A status code.
     33  * @retval 0 Success.
     34  * @retval -1 Failure.
     35  */
     36 int FwdLockFile_attach(int fileDesc);
     37 
     38 /**
     39  * Opens a Forward Lock file for reading.
     40  *
     41  * @param[in] pFilename A reference to a filename.
     42  *
     43  * @return A file descriptor.
     44  * @retval -1 Failure.
     45  */
     46 int FwdLockFile_open(const char *pFilename);
     47 
     48 /**
     49  * Reads the specified number of bytes from an open Forward Lock file.
     50  *
     51  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
     52  * @param[out] pBuffer A reference to the buffer that should receive the read data.
     53  * @param[in] numBytes The number of bytes to read.
     54  *
     55  * @return The number of bytes read.
     56  * @retval -1 Failure.
     57  */
     58 ssize_t FwdLockFile_read(int fileDesc, void *pBuffer, size_t numBytes);
     59 
     60 /**
     61  * Updates the file position within an open Forward Lock file.
     62  *
     63  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
     64  * @param[in] offset The offset with which to update the file position.
     65  * @param[in] whence One of SEEK_SET, SEEK_CUR, and SEEK_END.
     66  *
     67  * @return The new file position.
     68  * @retval ((off64_t)-1) Failure.
     69  */
     70 off64_t FwdLockFile_lseek(int fileDesc, off64_t offset, int whence);
     71 
     72 /**
     73  * Detaches from an open Forward Lock file.
     74  *
     75  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
     76  *
     77  * @return A status code.
     78  * @retval 0 Success.
     79  * @retval -1 Failure.
     80  */
     81 int FwdLockFile_detach(int fileDesc);
     82 
     83 /**
     84  * Closes an open Forward Lock file.
     85  *
     86  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
     87  *
     88  * @return A status code.
     89  * @retval 0 Success.
     90  * @retval -1 Failure.
     91  */
     92 int FwdLockFile_close(int fileDesc);
     93 
     94 /**
     95  * Checks the data integrity of an open Forward Lock file.
     96  *
     97  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
     98  *
     99  * @return A Boolean value indicating whether the integrity check was successful.
    100  */
    101 int FwdLockFile_CheckDataIntegrity(int fileDesc);
    102 
    103 /**
    104  * Checks the header integrity of an open Forward Lock file.
    105  *
    106  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
    107  *
    108  * @return A Boolean value indicating whether the integrity check was successful.
    109  */
    110 int FwdLockFile_CheckHeaderIntegrity(int fileDesc);
    111 
    112 /**
    113  * Checks both the data and header integrity of an open Forward Lock file.
    114  *
    115  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
    116  *
    117  * @return A Boolean value indicating whether the integrity check was successful.
    118  */
    119 int FwdLockFile_CheckIntegrity(int fileDesc);
    120 
    121 /**
    122  * Returns the content type of an open Forward Lock file.
    123  *
    124  * @param[in] fileDesc The file descriptor of an open Forward Lock file.
    125  *
    126  * @return
    127  *   A reference to the content type. The reference remains valid as long as the file is kept open.
    128  */
    129 const char *FwdLockFile_GetContentType(int fileDesc);
    130 
    131 #ifdef __cplusplus
    132 }
    133 #endif
    134 
    135 #endif // __FWDLOCKFILE_H__
    136