Blame include/PosixStorage.h

Packit 8a864e
// Copyright (c) 1994, 1995 James Clark
Packit 8a864e
// See the file COPYING for copying permission.
Packit 8a864e
Packit 8a864e
#ifndef PosixStorage_INCLUDED
Packit 8a864e
#define PosixStorage_INCLUDED 1
Packit 8a864e
#ifdef __GNUG__
Packit 8a864e
#pragma interface
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#include "StorageManager.h"
Packit 8a864e
#include "DescriptorManager.h"
Packit 8a864e
#include "Vector.h"
Packit 8a864e
#include "StringC.h"
Packit 8a864e
#include "CharsetInfo.h"
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
namespace SP_NAMESPACE {
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
class Messenger;
Packit 8a864e
class CharsetInfo;
Packit 8a864e
class UnivCharsetDesc;
Packit 8a864e
class Filename;
Packit 8a864e
class OutputCodingSystem;
Packit 8a864e
Packit 8a864e
class SP_API PosixStorageManager : public IdStorageManager {
Packit 8a864e
public:
Packit 8a864e
  PosixStorageManager(const char *type,
Packit 8a864e
		      const CharsetInfo *filenameCharset,
Packit 8a864e
#ifndef SP_WIDE_SYSTEM
Packit 8a864e
		      const OutputCodingSystem *filenameCodingSystem,
Packit 8a864e
#endif
Packit 8a864e
		      int maxFDs,
Packit 8a864e
		      Boolean restrictFileReading = 0);
Packit 8a864e
  StorageObject *makeStorageObject(const StringC &id,
Packit 8a864e
				   const StringC &baseId,
Packit 8a864e
				   Boolean search,
Packit 8a864e
				   Boolean mayRewind,
Packit 8a864e
				   Messenger &,
Packit 8a864e
				   StringC &foundId);
Packit 8a864e
  Boolean resolveRelative(const StringC &, StringC &, Boolean syntactic = 0)
Packit 8a864e
    const;
Packit 8a864e
  const char *type() const;
Packit 8a864e
  void addSearchDir(const StringC &);
Packit 8a864e
  Boolean transformNeutral(StringC &, Boolean fold, Messenger &) const;
Packit 8a864e
private:
Packit 8a864e
  Boolean isAbsolute(const StringC &) const;
Packit 8a864e
  Boolean isSafe(const StringC &) const;
Packit 8a864e
  StringC extractDir(const StringC &) const;
Packit 8a864e
  StringC combineDir(const StringC &, const StringC &) const;
Packit 8a864e
  PosixStorageManager(const PosixStorageManager &); // undefined
Packit 8a864e
  void operator=(const PosixStorageManager &);	    // undefined
Packit 8a864e
  DescriptorManager descriptorManager_;
Packit 8a864e
  Boolean restrictFileReading_;
Packit 8a864e
#ifndef SP_WIDE_SYSTEM
Packit 8a864e
  const OutputCodingSystem *filenameCodingSystem_;
Packit 8a864e
#endif
Packit 8a864e
  const char *type_;
Packit 8a864e
  Vector<StringC> searchDirs_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class SP_API PosixFdStorageManager : public IdStorageManager {
Packit 8a864e
public:
Packit 8a864e
  PosixFdStorageManager(const char *type,
Packit 8a864e
			const CharsetInfo *filenameCharset);
Packit 8a864e
  StorageObject *makeStorageObject(const StringC &id,
Packit 8a864e
				   const StringC &baseId,
Packit 8a864e
				   Boolean,
Packit 8a864e
				   Boolean mayRewind,
Packit 8a864e
				   Messenger &mgr,
Packit 8a864e
				   StringC &foundId);
Packit 8a864e
  const char *type() const;
Packit 8a864e
  Boolean inheritable() const;
Packit 8a864e
private:
Packit 8a864e
  PosixFdStorageManager(const PosixFdStorageManager &); // undefined
Packit 8a864e
  void operator=(const PosixFdStorageManager &);	    // undefined
Packit 8a864e
  const char *type_;
Packit 8a864e
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
}
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#endif /* not PosixStorage_INCLUDED */