]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - misc/mediasource/netradiant-src/libs/profile/file.cpp
Rename mediasource to source
[voretournament/voretournament.git] / misc / mediasource / netradiant-src / libs / profile / file.cpp
diff --git a/misc/mediasource/netradiant-src/libs/profile/file.cpp b/misc/mediasource/netradiant-src/libs/profile/file.cpp
deleted file mode 100644 (file)
index 19756e8..0000000
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
-Copyright (c) 2001, Loki software, inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, 
-are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list 
-of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions and the following disclaimer in the documentation and/or
-other materials provided with the distribution.
-
-Neither the name of Loki software nor the names of its contributors may be used 
-to endorse or promote products derived from this software without specific prior 
-written permission. 
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' 
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY 
-DIRECT,INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
-*/
-
-//
-// File class, can be a memory file or a regular disk file.
-// Originally from LeoCAD, used with permission from the author. :)
-//
-// Leonardo Zide (leo@lokigames.com)
-//
-
-#include "file.h"
-
-#include <memory.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-
-/////////////////////////////////////////////////////////////////////////////
-// File construction/destruction
-
-MemStream::MemStream()
-{
-  m_nGrowBytes = 1024;
-  m_nPosition = 0;
-  m_nBufferSize = 0;
-  m_nFileSize = 0;
-  m_pBuffer = NULL;
-  m_bAutoDelete = true;
-}
-
-MemStream::MemStream(size_type nLen)
-{
-  m_nGrowBytes = 1024;
-  m_nPosition = 0;
-  m_nBufferSize = 0;
-  m_nFileSize = 0;
-  m_pBuffer = NULL;
-  m_bAutoDelete = true;
-
-  GrowFile (nLen);
-}
-
-FileStream::FileStream()
-{
-  m_hFile = NULL;
-  m_bCloseOnDelete = false;
-}
-
-MemStream::~MemStream()
-{
-  if (m_pBuffer)
-    Close();
-
-  m_nGrowBytes = 0;
-  m_nPosition = 0;
-  m_nBufferSize = 0;
-  m_nFileSize = 0;
-}
-
-FileStream::~FileStream()
-{
-  if (m_hFile != NULL && m_bCloseOnDelete)
-    Close();
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// File operations
-
-char* MemStream::ReadString(char* pBuf, size_type nMax)
-{
-  int nRead = 0;
-  unsigned char ch;
-
-  if (nMax <= 0)
-    return NULL;
-  if (m_nPosition >= m_nFileSize)
-    return NULL;
-
-  while ((--nMax))
-  {
-    if (m_nPosition == m_nFileSize)
-      break;
-
-    ch = m_pBuffer[m_nPosition];
-    m_nPosition++;
-    pBuf[nRead++] = ch;
-
-    if (ch == '\n')
-      break;
-  }
-
-  pBuf[nRead] = '\0';
-  return pBuf;
-}
-
-char* FileStream::ReadString(char* pBuf, size_type nMax)
-{
-  return fgets(pBuf, static_cast<int>(nMax), m_hFile);
-}
-
-MemStream::size_type MemStream::read(byte_type* buffer, size_type length)
-{
-  if (length == 0)
-    return 0;
-
-  if (m_nPosition > m_nFileSize)
-    return 0;
-
-  size_type nRead;
-  if (m_nPosition + length > m_nFileSize)
-    nRead = m_nFileSize - m_nPosition;
-  else
-    nRead = length;
-
-  memcpy((unsigned char*)buffer, (unsigned char*)m_pBuffer + m_nPosition, nRead);
-  m_nPosition += nRead;
-
-  return nRead;
-}
-
-FileStream::size_type FileStream::read(byte_type* buffer, size_type length)
-{
-  return fread(buffer, 1, length, m_hFile);
-}
-
-int MemStream::GetChar()
-{
-  if (m_nPosition > m_nFileSize)
-    return 0;
-
-  unsigned char* ret = (unsigned char*)m_pBuffer + m_nPosition;
-  m_nPosition++;
-
-  return *ret;
-}
-
-int FileStream::GetChar()
-{
-  return fgetc(m_hFile);
-}
-
-MemStream::size_type MemStream::write(const byte_type* buffer, size_type length)
-{
-  if (length == 0)
-    return 0;
-
-  if (m_nPosition + length > m_nBufferSize)
-    GrowFile(m_nPosition + length);
-
-  memcpy((unsigned char*)m_pBuffer + m_nPosition, (unsigned char*)buffer, length);
-
-  m_nPosition += size_type(length);
-
-  if (m_nPosition > m_nFileSize)
-    m_nFileSize = m_nPosition;
-
-  return length;
-}
-
-FileStream::size_type FileStream::write(const byte_type* buffer, size_type length)
-{
-  return fwrite(buffer, 1, length, m_hFile);
-}
-
-int MemStream::PutChar(int c)
-{
-  if (m_nPosition + 1 > m_nBufferSize)
-    GrowFile(m_nPosition + 1);
-
-  unsigned char* bt = (unsigned char*)m_pBuffer + m_nPosition;
-  *bt = c;
-
-  m_nPosition++;
-
-  if (m_nPosition > m_nFileSize)
-    m_nFileSize = m_nPosition;
-
-  return 1;
-}
-
-/*!\todo SPoG suggestion: replace printf with operator >> using c++ iostream and strstream */
-void FileStream::printf(const char* s, ...)
-{
-  va_list args;
-
-  va_start (args, s);
-  vfprintf(m_hFile, s, args);
-  va_end (args);
-}
-
-/*!\todo SPoG suggestion: replace printf with operator >> using c++ iostream and strstream */
-void MemStream::printf(const char* s, ...)
-{
-  va_list args;
-
-  char buffer[4096];
-  va_start (args, s);
-  vsprintf(buffer, s, args);
-  va_end (args);
-  write(reinterpret_cast<byte_type*>(buffer), strlen(buffer));
-}
-
-int FileStream::PutChar(int c)
-{
-  return fputc(c, m_hFile);
-}
-
-bool FileStream::Open(const char *filename, const char *mode)
-{
-  m_hFile = fopen(filename, mode);
-  m_bCloseOnDelete = true;
-
-  return (m_hFile != NULL);
-}
-
-void MemStream::Close()
-{
-  m_nGrowBytes = 0;
-  m_nPosition = 0;
-  m_nBufferSize = 0;
-  m_nFileSize = 0;
-  if (m_pBuffer && m_bAutoDelete)
-    free(m_pBuffer);
-  m_pBuffer = NULL;
-}
-
-void FileStream::Close()
-{
-  if (m_hFile != NULL)
-    fclose(m_hFile);
-
-  m_hFile = NULL;
-  m_bCloseOnDelete = false;
-}
-
-int MemStream::Seek(offset_type lOff, int nFrom)
-{
-  size_type lNewPos = m_nPosition;
-
-  if (nFrom == SEEK_SET)
-    lNewPos = lOff;
-  else if (nFrom == SEEK_CUR)
-    lNewPos += lOff;
-  else if (nFrom == SEEK_END)
-    lNewPos = m_nFileSize + lOff;
-  else
-    return (position_type)-1;
-
-  m_nPosition = lNewPos;
-
-  return static_cast<int>(m_nPosition);
-}
-
-int FileStream::Seek(offset_type lOff, int nFrom)
-{
-  fseek (m_hFile, lOff, nFrom);
-
-  return ftell(m_hFile);
-}
-
-MemStream::position_type MemStream::GetPosition() const
-{
-    return m_nPosition;
-}
-
-FileStream::position_type FileStream::GetPosition() const
-{
-  return ftell(m_hFile);
-}
-
-void MemStream::GrowFile(size_type nNewLen)
-{
-  if (nNewLen > m_nBufferSize)
-  {
-    // grow the buffer
-    size_type nNewBufferSize = m_nBufferSize;
-
-    // determine new buffer size
-    while (nNewBufferSize < nNewLen)
-      nNewBufferSize += m_nGrowBytes;
-
-    // allocate new buffer
-    unsigned char* lpNew;
-    if (m_pBuffer == NULL)
-      lpNew = static_cast<unsigned char*>(malloc(nNewBufferSize));
-    else
-      lpNew = static_cast<unsigned char*>(realloc(m_pBuffer, nNewBufferSize));
-
-    m_pBuffer = lpNew;
-    m_nBufferSize = nNewBufferSize;
-  }
-}
-
-void MemStream::Flush()
-{
-  // Nothing to be done
-}
-
-void FileStream::Flush()
-{
-  if (m_hFile == NULL)
-    return;
-
-  fflush(m_hFile);
-}
-
-void MemStream::Abort()
-{
-  Close();
-}
-
-void FileStream::Abort()
-{
-  if (m_hFile != NULL)
-  {
-    // close but ignore errors
-    if (m_bCloseOnDelete)
-      fclose(m_hFile);
-    m_hFile = NULL;
-    m_bCloseOnDelete = false;
-  }
-}
-
-void MemStream::SetLength(size_type nNewLen)
-{
-  if (nNewLen > m_nBufferSize)
-    GrowFile(nNewLen);
-
-  if (nNewLen < m_nPosition)
-    m_nPosition = nNewLen;
-
-  m_nFileSize = nNewLen;
-}
-
-void FileStream::SetLength(size_type nNewLen)
-{
-  fseek(m_hFile, static_cast<long>(nNewLen), SEEK_SET);
-}
-
-MemStream::size_type MemStream::GetLength() const
-{
-  return m_nFileSize;
-}
-
-FileStream::size_type FileStream::GetLength() const
-{
-  size_type nLen, nCur;
-
-  // Seek is a non const operation
-  nCur = ftell(m_hFile);
-  fseek(m_hFile, 0, SEEK_END);
-  nLen = ftell(m_hFile);
-  fseek(m_hFile, static_cast<long>(nCur), SEEK_SET);
-
-  return nLen;
-}