WSYS_FileSystem.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /*
  2. ** Command & Conquer Generals(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. //----------------------------------------------------------------------------=
  19. //
  20. // Westwood Studios Pacific.
  21. //
  22. // Confidential Information
  23. // Copyright(C) 2001 - All Rights Reserved
  24. //
  25. //----------------------------------------------------------------------------
  26. //
  27. // Project: WSYS Library
  28. //
  29. // Module: IO
  30. //
  31. // File name: wsys/FileSystem.h
  32. //
  33. // Created:
  34. //
  35. //----------------------------------------------------------------------------
  36. #pragma once
  37. #ifndef __WSYS_FILESYSTEM_H
  38. #define __WSYS_FILESYSTEM_H
  39. //----------------------------------------------------------------------------
  40. // Includes
  41. //----------------------------------------------------------------------------
  42. #ifndef __WSYS_FILE_H
  43. #include "wsys_file.h"
  44. #endif
  45. //----------------------------------------------------------------------------
  46. // Forward References
  47. //----------------------------------------------------------------------------
  48. //----------------------------------------------------------------------------
  49. // Type Defines
  50. //----------------------------------------------------------------------------
  51. //===============================
  52. // FileSystem
  53. //===============================
  54. /**
  55. * FileSystem is an interface class for creating specific FileSystem objects.
  56. *
  57. * A FileSystem object's implemenation decides what derivative of File object needs to be
  58. * created when FileSystem::Open() gets called.
  59. */
  60. //===============================
  61. class FileSystem
  62. {
  63. protected:
  64. public:
  65. virtual ~FileSystem() {};
  66. virtual File* open( const Char *filename, Int access = 0 ) = NULL ; ///< opens a File interface to the specified file
  67. };
  68. extern FileSystem* TheFileSystem;
  69. //----------------------------------------------------------------------------
  70. // Inlining
  71. //----------------------------------------------------------------------------
  72. #endif // __WSYS_FILESYSTEM_H