Open CASCADE Technology 7.8.0
Public Member Functions | Static Public Member Functions
OSD_FileSystem Class Referenceabstract

Base interface for a file stream provider. It is intended to be implemented for specific file protocol. More...

#include <OSD_FileSystem.hxx>

Inheritance diagram for OSD_FileSystem:
Inheritance graph
[legend]

Public Member Functions

virtual Standard_Boolean IsSupportedPath (const TCollection_AsciiString &theUrl) const =0
 Returns TRUE if URL defines a supported protocol.
 
virtual Standard_Boolean IsOpenIStream (const std::shared_ptr< std::istream > &theStream) const =0
 Returns TRUE if current input stream is opened for reading operations.
 
virtual Standard_Boolean IsOpenOStream (const std::shared_ptr< std::ostream > &theStream) const =0
 Returns TRUE if current output stream is opened for writing operations.
 
virtual std::shared_ptr< std::istream > OpenIStream (const TCollection_AsciiString &theUrl, const std::ios_base::openmode theMode, const int64_t theOffset=0, const std::shared_ptr< std::istream > &theOldStream=std::shared_ptr< std::istream >())
 Opens stream for specified file URL for reading operations (std::istream). Default implementation create a stream from file buffer returned by OSD_FileSystem::OpenFileBuffer().
 
virtual std::shared_ptr< std::ostream > OpenOStream (const TCollection_AsciiString &theUrl, const std::ios_base::openmode theMode)
 Opens stream for specified file URL for writing operations (std::ostream). Default implementation create a stream from file buffer returned by OSD_FileSystem::OpenFileBuffer().
 
virtual std::shared_ptr< std::streambuf > OpenStreamBuffer (const TCollection_AsciiString &theUrl, const std::ios_base::openmode theMode, const int64_t theOffset=0, int64_t *theOutBufSize=NULL)=0
 Opens stream buffer for specified file URL.
 
 OSD_FileSystem ()
 Constructor.
 
virtual ~OSD_FileSystem ()
 Destructor.
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Static Public Member Functions

static const Handle< OSD_FileSystem > & DefaultFileSystem ()
 Returns a global file system, which a selector between registered file systems (OSD_FileSystemSelector).
 
static void AddDefaultProtocol (const Handle< OSD_FileSystem > &theFileSystem, bool theIsPreferred=false)
 Registers file system within the global file system selector returned by OSD_FileSystem::DefaultFileSystem(). Note that registering protocols is not thread-safe operation and expected to be done once at application startup.
 
static void RemoveDefaultProtocol (const Handle< OSD_FileSystem > &theFileSystem)
 Unregisters file system within the global file system selector returned by OSD_FileSystem::DefaultFileSystem().
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 

Detailed Description

Base interface for a file stream provider. It is intended to be implemented for specific file protocol.

Constructor & Destructor Documentation

◆ OSD_FileSystem()

OSD_FileSystem::OSD_FileSystem ( )

Constructor.

◆ ~OSD_FileSystem()

virtual OSD_FileSystem::~OSD_FileSystem ( )
virtual

Destructor.

Member Function Documentation

◆ AddDefaultProtocol()

static void OSD_FileSystem::AddDefaultProtocol ( const Handle< OSD_FileSystem > &  theFileSystem,
bool  theIsPreferred = false 
)
static

Registers file system within the global file system selector returned by OSD_FileSystem::DefaultFileSystem(). Note that registering protocols is not thread-safe operation and expected to be done once at application startup.

Parameters
[in]theFileSystemfile system to register
[in]theIsPreferredadd to the beginning of the list when TRUE, or add to the end otherwise

◆ DefaultFileSystem()

static const Handle< OSD_FileSystem > & OSD_FileSystem::DefaultFileSystem ( )
static

Returns a global file system, which a selector between registered file systems (OSD_FileSystemSelector).

◆ IsOpenIStream()

virtual Standard_Boolean OSD_FileSystem::IsOpenIStream ( const std::shared_ptr< std::istream > &  theStream) const
pure virtual

Returns TRUE if current input stream is opened for reading operations.

Implemented in OSD_CachedFileSystem, OSD_FileSystemSelector, and OSD_LocalFileSystem.

◆ IsOpenOStream()

virtual Standard_Boolean OSD_FileSystem::IsOpenOStream ( const std::shared_ptr< std::ostream > &  theStream) const
pure virtual

Returns TRUE if current output stream is opened for writing operations.

Implemented in OSD_CachedFileSystem, OSD_FileSystemSelector, and OSD_LocalFileSystem.

◆ IsSupportedPath()

virtual Standard_Boolean OSD_FileSystem::IsSupportedPath ( const TCollection_AsciiString theUrl) const
pure virtual

Returns TRUE if URL defines a supported protocol.

Implemented in OSD_CachedFileSystem, OSD_FileSystemSelector, and OSD_LocalFileSystem.

◆ OpenIStream()

virtual std::shared_ptr< std::istream > OSD_FileSystem::OpenIStream ( const TCollection_AsciiString theUrl,
const std::ios_base::openmode  theMode,
const int64_t  theOffset = 0,
const std::shared_ptr< std::istream > &  theOldStream = std::shared_ptr< std::istream >() 
)
virtual

Opens stream for specified file URL for reading operations (std::istream). Default implementation create a stream from file buffer returned by OSD_FileSystem::OpenFileBuffer().

Parameters
theUrl[in] path to open
theMode[in] flags describing the requested input mode for the stream (std::ios_base::in will be implicitly added)
theOffset[in] expected stream position from the beginning of the file (beginning of the stream by default); -1 would keep seek position undefined (in case of re-using theOldStream)
theOldStream[in] a pointer to existing stream pointing to theUrl to be reused (without re-opening)
Returns
pointer to newly created opened stream, to theOldStream if it can be reused or NULL in case of failure.

Reimplemented in OSD_FileSystemSelector, and OSD_CachedFileSystem.

◆ OpenOStream()

virtual std::shared_ptr< std::ostream > OSD_FileSystem::OpenOStream ( const TCollection_AsciiString theUrl,
const std::ios_base::openmode  theMode 
)
virtual

Opens stream for specified file URL for writing operations (std::ostream). Default implementation create a stream from file buffer returned by OSD_FileSystem::OpenFileBuffer().

Parameters
theUrl[in] path to open
theMode[in] flags describing the requested output mode for the stream (std::ios_base::out will be implicitly added)
Returns
pointer to newly created opened stream or NULL in case of failure.

Reimplemented in OSD_CachedFileSystem, and OSD_FileSystemSelector.

◆ OpenStreamBuffer()

virtual std::shared_ptr< std::streambuf > OSD_FileSystem::OpenStreamBuffer ( const TCollection_AsciiString theUrl,
const std::ios_base::openmode  theMode,
const int64_t  theOffset = 0,
int64_t theOutBufSize = NULL 
)
pure virtual

Opens stream buffer for specified file URL.

Parameters
theUrl[in] path to open
theMode[in] flags describing the requested input mode for the stream
theOffset[in] expected stream position from the beginning of the buffer (beginning of the stream buffer by default)
theOutBufSize[out] total buffer size (only if buffer is opened for read)
Returns
pointer to newly created opened stream buffer or NULL in case of failure.

Implemented in OSD_CachedFileSystem, OSD_FileSystemSelector, and OSD_LocalFileSystem.

◆ RemoveDefaultProtocol()

static void OSD_FileSystem::RemoveDefaultProtocol ( const Handle< OSD_FileSystem > &  theFileSystem)
static

Unregisters file system within the global file system selector returned by OSD_FileSystem::DefaultFileSystem().


The documentation for this class was generated from the following file: