]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/file.h
error check and bail if permission denied during gamepack install
[xonotic/netradiant.git] / radiant / file.h
index d9f1bd7eb8672a2fd28b55f6399f68838c3432df..d69f73bd92f048fe5ef4fa70fa2145cf56dae1f3 100644 (file)
-/*\r
-Copyright (c) 2001, Loki software, inc.\r
-All rights reserved.\r
-\r
-Redistribution and use in source and binary forms, with or without modification, \r
-are permitted provided that the following conditions are met:\r
-\r
-Redistributions of source code must retain the above copyright notice, this list \r
-of conditions and the following disclaimer.\r
-\r
-Redistributions in binary form must reproduce the above copyright notice, this\r
-list of conditions and the following disclaimer in the documentation and/or\r
-other materials provided with the distribution.\r
-\r
-Neither the name of Loki software nor the names of its contributors may be used \r
-to endorse or promote products derived from this software without specific prior \r
-written permission. \r
-\r
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' \r
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE \r
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY \r
-DIRECT,INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES \r
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; \r
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON \r
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS \r
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
-*/\r
-\r
-//\r
-//     file.h\r
-////////////////////////////////////////////////////\r
-\r
-#ifndef _FILE_H_\r
-#define _FILE_H_\r
-\r
-//#include <stdio.h>\r
-\r
-class MemStream : public IDataStream\r
-{\r
-public:\r
-       MemStream();\r
-       MemStream(unsigned long nLen);\r
-       virtual ~MemStream();\r
-\r
-       int refCount;\r
-       void IncRef() { refCount++; }\r
-       void DecRef() { refCount--; if (refCount <= 0) delete this; }\r
-\r
-protected:\r
-       // MemFile specific:\r
-       unsigned long m_nGrowBytes;\r
-       unsigned long m_nPosition;\r
-       unsigned long m_nBufferSize;\r
-       unsigned long m_nFileSize;\r
-       unsigned char* m_pBuffer;\r
-       bool m_bAutoDelete;\r
-       void GrowFile(unsigned long nNewLen);\r
-\r
-public:\r
-       unsigned long GetPosition() const;\r
-       unsigned long Seek(long lOff, int nFrom);\r
-       void SetLength(unsigned long nNewLen);\r
-       unsigned long GetLength() const;\r
-\r
-       unsigned char* GetBuffer () const\r
-         { return m_pBuffer; }\r
-\r
-       char* ReadString(char* pBuf, unsigned long nMax);\r
-       unsigned long Read(void* pBuf, unsigned long nCount);\r
-       unsigned long Write(const void* pBuf, unsigned long nCount);\r
-       int GetChar();\r
-       int PutChar(int c);\r
-  \r
-  void printf(const char*, ...); ///< \todo implement on MemStream\r
-\r
-       void Abort();\r
-       void Flush();\r
-       void Close();\r
-       bool Open(const char *filename, const char *mode);\r
-};\r
-\r
-class FileStream : public IDataStream\r
-{\r
-public:\r
-       FileStream();\r
-       virtual ~FileStream();\r
-\r
-       int refCount;\r
-       void IncRef() { refCount++; }\r
-       void DecRef() { refCount--; if (refCount <= 0) delete this; }\r
-\r
-protected:\r
-       // DiscFile specific:\r
-       FILE* m_hFile;\r
-       bool m_bCloseOnDelete;\r
-\r
-public:\r
-       unsigned long GetPosition() const;\r
-       unsigned long Seek(long lOff, int nFrom);\r
-       void SetLength(unsigned long nNewLen);\r
-       unsigned long GetLength() const;\r
-\r
-       char* ReadString(char* pBuf, unsigned long nMax);\r
-       unsigned long Read(void* pBuf, unsigned long nCount);\r
-       unsigned long Write(const void* pBuf, unsigned long nCount);\r
-       int GetChar();\r
-       int PutChar(int c);\r
-\r
-  void printf(const char*, ...); ///< completely matches the usual printf behaviour\r
-\r
-       void Abort();\r
-       void Flush();\r
-       void Close();\r
-       bool Open(const char *filename, const char *mode);\r
-};\r
-\r
-#endif // _FILE_H_\r
+/*
+   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.h
+////////////////////////////////////////////////////
+
+#ifndef _FILE_H_
+#define _FILE_H_
+
+//#include <stdio.h>
+
+class MemStream : public IDataStream
+{
+public:
+MemStream();
+MemStream( unsigned long nLen );
+virtual ~MemStream();
+
+int refCount;
+void IncRef() { refCount++; }
+void DecRef() {
+       refCount--; if ( refCount <= 0 ) {
+               delete this;
+       }
+}
+
+protected:
+// MemFile specific:
+unsigned long m_nGrowBytes;
+unsigned long m_nPosition;
+unsigned long m_nBufferSize;
+unsigned long m_nFileSize;
+unsigned char* m_pBuffer;
+bool m_bAutoDelete;
+void GrowFile( unsigned long nNewLen );
+
+public:
+unsigned long GetPosition() const;
+unsigned long Seek( long lOff, int nFrom );
+void SetLength( unsigned long nNewLen );
+unsigned long GetLength() const;
+
+unsigned char* GetBuffer() const
+{ return m_pBuffer; }
+
+char* ReadString( char* pBuf, unsigned long nMax );
+unsigned long Read( void* pBuf, unsigned long nCount );
+unsigned long Write( const void* pBuf, unsigned long nCount );
+int GetChar();
+int PutChar( int c );
+
+void printf( const char*, ... ); ///< \todo implement on MemStream
+
+void Abort();
+void Flush();
+void Close();
+bool Open( const char *filename, const char *mode );
+};
+
+class FileStream : public IDataStream
+{
+public:
+FileStream();
+virtual ~FileStream();
+
+int refCount;
+void IncRef() { refCount++; }
+void DecRef() {
+       refCount--; if ( refCount <= 0 ) {
+               delete this;
+       }
+}
+
+protected:
+// DiscFile specific:
+FILE* m_hFile;
+bool m_bCloseOnDelete;
+
+public:
+unsigned long GetPosition() const;
+unsigned long Seek( long lOff, int nFrom );
+void SetLength( unsigned long nNewLen );
+unsigned long GetLength() const;
+
+char* ReadString( char* pBuf, unsigned long nMax );
+unsigned long Read( void* pBuf, unsigned long nCount );
+unsigned long Write( const void* pBuf, unsigned long nCount );
+int GetChar();
+int PutChar( int c );
+
+void printf( const char*, ... ); ///< completely matches the usual printf behaviour
+
+void Abort();
+void Flush();
+void Close();
+bool Open( const char *filename, const char *mode );
+};
+
+#endif // _FILE_H_