ost::ThreadFile(3)

πŸ“¦ version 1.8.1, in ubuntu jammy

πŸ’– ost::ThreadFile β€” from the Library Functions Manual (yes bestie, section 3) πŸ’–

okay so. imagine a database file that a whole squad of threads can vibe with at the same time. that's this. 🫢


✨ NAME ✨

ost::ThreadFile β€” this class defines a database I/O file service that can be shared by multiple threads. πŸ’…


🌸 SYNOPSIS 🌸

#include <file.h>

Inherits ost::RandomFile. it's giving inheritance. it's giving lineage. πŸ‘‘

πŸŽ€ Public Member Functions πŸŽ€

  • ThreadFile (const char *path) β€” open or create a new database file.
  • virtual ~ThreadFile () β€” close and finish a database file.
  • Error restart (void) β€” restart an existing database; close and re-open.
  • Error fetch (caddr_t address=NULL, ccxx_size_t length=0, off_t position=-1) β€” fetch a portion of the file into physical memory.
  • Error update (caddr_t address=NULL, ccxx_size_t length=0, off_t position=-1) β€” update a portion of a file from physical memory.
  • Error append (caddr_t address=NULL, ccxx_size_t length=0) β€” add new data to the end of the file.
  • off_t getPosition (void) β€” fetch the current file position marker for this thread.
  • bool operator++ (void)
  • bool operator-- (void)

πŸ¦‹ Additional Inherited Members πŸ¦‹

(yes, there's more, it's giving family tree 🌳)


πŸ’œ Detailed Description πŸ’œ

This class defines a database I/O file service that can be shared by multiple threads. no cap.

Every single thread accesses a global copy of the database object, and mutex locks can be used to preserve transaction integrety. (yes, "integrety" β€” that's how it's spelled in the source, don't come for me 😭) pread/pwrite calls can be used for optimized I/O when supported. slay.

ThreadFile is meant for use by a threaded database server where multiple threads may each perform semi-independent operations on a given database table stored on disk. A special 'fcb' structure is used to hold file 'state', and pread/pwrite is used whenever possible for optimized I/O. On systems that do not offer pwread/pwrite, a Mutex lock is used to protect concurrent lseek and read/write operations. ThreadFile managed databases are assumed to be used only by the local server and through a single file descriptor.

fr fr: single file descriptor, local server only. don't get cute with it. πŸ™ˆ

🌈 Author 🌈

David Sugar dyfet@ostel.com

This class defines a database I/O file service that can be shared by multiple threads. (yes it says it again, iconic repetition, main character energy πŸ’…)


πŸŽ€ Constructor & Destructor Documentation πŸŽ€

πŸ’– ost::ThreadFile::ThreadFile (const char * path)

Open or create a new database file. You should also use Initial.

Parameters

  • path β€” pathname of database to open.

πŸ’– virtual ost::ThreadFile::~ThreadFile () [virtual]

Close and finish a database file.


⭐ Member Function Documentation ⭐

🌸 Error ost::ThreadFile::append (caddr_t address = NULL, ccxx_size_t length = 0)

Add new data to the end of the file.

Parameters

  • address β€” address to use, or NULL if same as last I/O.
  • length β€” length to use, or 0 if same as last I/O.

🌸 Error ost::ThreadFile::fetch (caddr_t address = NULL, ccxx_size_t length = 0, off_t position = -1)

Fetch a portion of the file into physical memory. This can use state information to fetch the current record multiple times.

Returns

errSuccess on success.

Parameters

  • address β€” address to use, or NULL if same as last I/O.
  • length β€” length to use, or 0 if same as last I/O.
  • position β€” file position to use -1 if same as last I/O.

🌸 off_t ost::ThreadFile::getPosition (void)

Fetch the current file position marker for this thread.

Returns

file position offset.

🌸 bool ost::ThreadFile::operator++ (void)

🌸 bool ost::ThreadFile::operator-- (void)

🌸 Error ost::ThreadFile::restart (void) [virtual]

Restart an existing database; close and re-open.

Returns

errSuccess if successful.

Reimplemented from ost::RandomFile.

🌸 Error ost::ThreadFile::update (caddr_t address = NULL, ccxx_size_t length = 0, off_t position = -1)

Update a portion of a file from physical memory. This can use state information to commit the last read record.

Returns

errSuccess on success.

Parameters

  • address β€” address to use, or NULL if same as last I/O.
  • length β€” length to use, or 0 if same as last I/O.
  • position β€” file position to use or -1 if same as last I/O.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for GNU CommonC++ from the source code.


okay that's the whole page bestie, go forth and thread safely πŸ§šπŸ’œ

GNU CommonC++ Β· Sun Dec 27 2020 Β· ost::ThreadFile(3) β€” mwah, that's a wrap, periodt. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from