SASC
DVBSoftCAM

cSafeFile Class Reference

#include <tools.h>

List of all members.

Public Member Functions

 cSafeFile (const char *FileName)
 ~cSafeFile ()
 operator FILE * ()
bool Open (void)
bool Close (void)

Detailed Description

Definition at line 306 of file tools.h.


Constructor & Destructor Documentation

cSafeFile::cSafeFile ( const char *  FileName)

Definition at line 794 of file tools.cpp.

References MALLOC, NULL, and ReadLink().

{
  f = NULL;
  fileName = ReadLink(FileName);
  tempName = fileName ? MALLOC(char, strlen(fileName) + 5) : NULL;
  if (tempName)
     strcat(strcpy(tempName, fileName), ".$$$");
}
cSafeFile::~cSafeFile ( )

Definition at line 803 of file tools.cpp.

References free.

{
  if (f)
     fclose(f);
  unlink(tempName);
  free(fileName);
  free(tempName);
}

Member Function Documentation

bool cSafeFile::Close ( void  )

Definition at line 822 of file tools.cpp.

References LOG_ERROR_STR, and NULL.

Referenced by cStructLoaderPlain::Save(), cStructLoader::Save(), and cConfig< cTimer >::Save().

{
  bool result = true;
  if (f) {
     if (ferror(f) != 0) {
        LOG_ERROR_STR(tempName);
        result = false;
        }
     if (fclose(f) < 0) {
        LOG_ERROR_STR(tempName);
        result = false;
        }
     f = NULL;
     if (result && rename(tempName, fileName) < 0) {
        LOG_ERROR_STR(fileName);
        result = false;
        }
     }
  else
     result = false;
  return result;
}
bool cSafeFile::Open ( void  )

Definition at line 812 of file tools.cpp.

References LOG_ERROR_STR, and NULL.

Referenced by cStructLoaderPlain::Save(), cStructLoader::Save(), and cConfig< cTimer >::Save().

{
  if (!f && fileName && tempName) {
     f = fopen(tempName, "w");
     if (!f)
        LOG_ERROR_STR(tempName);
     }
  return f != NULL;
}
cSafeFile::operator FILE * ( ) [inline]

Definition at line 314 of file tools.h.

{ return f; }

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines