source: svn/trunk/newcon3bcm2_21bu/nexus/modules/file/include/nexus_file_chunk.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 4.9 KB
Line 
1/***************************************************************************
2*     (c)2010 Broadcom Corporation
3*
4*  This program is the proprietary software of Broadcom Corporation and/or its licensors,
5*  and may only be used, duplicated, modified or distributed pursuant to the terms and
6*  conditions of a separate, written license agreement executed between you and Broadcom
7*  (an "Authorized License").  Except as set forth in an Authorized License, Broadcom grants
8*  no license (express or implied), right to use, or waiver of any kind with respect to the
9*  Software, and Broadcom expressly reserves all rights in and to the Software and all
10*  intellectual property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU
11*  HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY
12*  NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
13*
14*  Except as expressly set forth in the Authorized License,
15*
16*  1.     This program, including its structure, sequence and organization, constitutes the valuable trade
17*  secrets of Broadcom, and you shall use all reasonable efforts to protect the confidentiality thereof,
18*  and to use this information only in connection with your use of Broadcom integrated circuit products.
19*
20*  2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
21*  AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
22*  WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
23*  THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED WARRANTIES
24*  OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE,
25*  LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION
26*  OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF
27*  USE OR PERFORMANCE OF THE SOFTWARE.
28*
29*  3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
30*  LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT, OR
31*  EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO YOUR
32*  USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF
33*  THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT
34*  ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE
35*  LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF
36*  ANY LIMITED REMEDY.
37*
38* $brcm_Workfile: nexus_file_chunk.h $
39* $brcm_Revision: 1 $
40* $brcm_Date: 4/22/10 6:57p $
41*
42* API Description:
43*
44* Revision History:
45*
46* $brcm_Log: /nexus/modules/file/include/nexus_file_chunk.h $
47*
48* 1   4/22/10 6:57p mphillip
49* SW7405-4251: Merge chunked PVR support from branch to main
50*
51* SW7405-3587/2   4/22/10 12:00p mphillip
52* SW7405-4251: Update chunked PVR after API review, prepare for merge to
53*  main.
54*
55*
56*
57***************************************************************************/
58#ifndef NEXUS_FILE_CHUNK_H__
59#define NEXUS_FILE_CHUNK_H__
60
61#include "nexus_file_types.h"
62
63#ifdef __cplusplus
64extern "C" {
65#endif
66
67/**
68Summary:
69Settings for NEXUS_ChunkedFilePlay_OpenFile
70**/
71typedef struct NEXUS_ChunkedFilePlayOpenSettings {
72    off_t chunkSize; /* Size per chunk of file */
73} NEXUS_ChunkedFilePlayOpenSettings;
74
75/*
76Summary:
77Get default settings
78*/
79void NEXUS_ChunkedFilePlay_GetDefaultOpenSettings(
80    NEXUS_ChunkedFilePlayOpenSettings *pSettings /* [out] */
81    );
82
83/**
84Summary:
85Specialized function to play back files recorded with NEXUS_ChunkedFileRecord_OpenFile
86
87Description:
88NEXUS_ChunkedFilePlay_OpenFile opens a file for playback.  It assumes that the file is split
89into a series of chunks (of chunkSize), and they are contained in a directory
90dataFileDirectoryName.
91
92When working with chunked record and play, the specified chunkSize should match for both
93operations.
94**/
95NEXUS_FilePlayHandle NEXUS_ChunkedFilePlay_Open(
96    const char *dataFileDirectoryName,
97    const char *indexFileName,
98    const NEXUS_ChunkedFilePlayOpenSettings *pSettings
99    );
100
101/**
102Summary:
103Settings for NEXUS_ChunkedFileRecord_OpenFile
104**/
105typedef struct NEXUS_ChunkedFileRecordOpenSettings {
106    off_t chunkSize; /* Size per chunk of file */
107} NEXUS_ChunkedFileRecordOpenSettings;
108
109/*
110Summary:
111Get default settings
112*/
113void NEXUS_ChunkedFileRecord_GetDefaultOpenSettings(
114    NEXUS_ChunkedFileRecordOpenSettings *pSettings /* [out] */
115    );
116
117/**
118Summary:
119Specialized function to record files in chunks
120
121Description:
122NEXUS_ChunkedFileRecord_OpenFile opens a file for recording.  It assumes that the directory
123dataFileDirectoryName exists, and that the individual chunks of the data file should be placed
124in this directory.
125
126The index is not chunked.
127
128When working with chunked record and play, the specified chunkSize should match for both
129operations.
130**/
131NEXUS_FileRecordHandle NEXUS_ChunkedFileRecord_Open(
132    const char *dataFileName,
133    const char *indexFileName,
134    const NEXUS_ChunkedFileRecordOpenSettings *pSettings
135    );
136
137#ifdef __cplusplus
138}
139#endif
140
141#endif /* NEXUS_FILE_CHUNK_H__ */
Note: See TracBrowser for help on using the repository browser.