www.pudn.com > w_ipp-sample-media_p_5.0.017.zip > simple_file.cpp


/*////////////////////////////////////////////////////////////////////////////// 
// 
//                  INTEL CORPORATION PROPRIETARY INFORMATION 
//     This software is supplied under the terms of a license agreement or 
//     nondisclosure agreement with Intel Corporation and may not be copied 
//     or disclosed except in accordance with the terms of that agreement. 
//          Copyright(c) 2004-2005 Intel Corporation. All Rights Reserved. 
// 
*/ 
 
#include  
#include  
#include "simple_file.h" 
 
 
SimpleFile::SimpleFile() 
{ 
  m_is_first_time = 1; 
  m_file_handle = NULL; 
} 
 
SimpleFile::~SimpleFile() 
{ 
} 
 
int 
SimpleFile::Open(vm_char* p_filename, unsigned int mode) 
{ 
  FILE* p_file = NULL; 
 
  if (mode & AFM_CREATE) { 
    p_file = vm_file_open(p_filename, __VM_STRING("wb")); 
  } else { 
    p_file = vm_file_open(p_filename, __VM_STRING("rb")); 
  } 
 
  if (p_file == NULL) 
  { 
    return -1; 
  } 
 
  m_file_handle = p_file; 
 
  return 0; 
} 
 
int 
SimpleFile::Read(void * p_data, size_t size) 
{ 
  size_t        n; 
 
  if (m_file_handle == NULL) 
  { 
    return -1; 
  } 
 
  n = fread(p_data,1,size,(FILE*)m_file_handle); 
 
  return n; 
} 
 
int 
SimpleFile::Write(void * p_data, size_t size) 
{ 
  size_t        n; 
 
  if (m_file_handle == NULL) 
  { 
    return -1; 
  } 
 
  n = fwrite(p_data,1,size,(FILE*)m_file_handle); 
 
  return n; 
} 
int 
SimpleFile::Close() 
{ 
    if (m_file_handle == NULL) 
  { 
    return -1; 
  } 
 
  fclose((FILE*)m_file_handle); 
  return 0; 
}