 |
threaddb
2.0
A file mapped memory container extension
|
Go to the documentation of this file.
36 buff_sz(rDatabase_p.GetPackageSize()),
39 m_rDatabase(rDatabase_p),
40 m_ReadHandle(rDatabase_p.Open(PackageID_p))
42 buffer_ =
new char[std::max(buff_sz, put_back_) + put_back_];
43 char *end = buffer_ + buff_sz;
56 return traits_type::to_int_type(*gptr());
63 std::memmove(base, egptr() - put_back_, put_back_);
67 size_t n = m_rDatabase.
Recover(buff_sz, start, m_ReadHandle);
69 return traits_type::eof();
71 setg(base, start, start + n);
73 return traits_type::to_int_type(*gptr());
78 const std::size_t put_back_;
93 buff_sz(rDatabase_p.GetPackageSize()),
95 m_rDatabase(rDatabase_p),
96 m_PackageID(PackageID_p)
98 buffer_ =
new char[buff_sz + 1];
99 memset(buffer_, 0, buff_sz);
101 setp(buffer_, buffer_ + buff_sz);
110 virtual std::streambuf::int_type
overflow(std::streambuf::int_type value)
112 size_t write = pptr() - pbase();
115 m_rDatabase.
Store(m_PackageID, write, buffer_);
118 std::streamsize written = write;
120 if (written != write)
return traits_type::eof();
123 setp(buffer_, buffer_ + buff_sz);
124 if (!traits_type::eq_int_type(value, traits_type::eof())) sputc(value);
126 return traits_type::not_eof(value);
131 std::streambuf::int_type result = this->
overflow(traits_type::eof());
133 return traits_type::eq_int_type(result, traits_type::eof()) ? -1 : 0;
140 uint64_t m_PackageID;
ostreambuf(uint64_t PackageID_p, tdb::database &rDatabase_p)
Definition: threaddbStream.h:92
virtual ~ostreambuf()
Definition: threaddbStream.h:104
virtual ~istreambuf()
Definition: threaddbStream.h:47
C++ wrapper class to the threadDB_ReadInfo control structure.
Definition: threaddbCPP.h:70
virtual int sync()
Definition: threaddbStream.h:129
Output stream implementation.
Definition: threaddbStream.h:164
istreambuf(uint64_t PackageID_p, tdb::database &rDatabase_p)
Definition: threaddbStream.h:35
Interface C++ wrapper classes.
virtual std::streambuf::int_type overflow(std::streambuf::int_type value)
Definition: threaddbStream.h:110
ostream(uint64_t PackageID_p, tdb::database &rDatabase_p)
Definition: threaddbStream.h:167
void Store(uint64_t Package_p, size_t Size_p, const char pData_p[], threadDB_ItemInfo *pItemHandle_p=0)
C++ wrapper to store a data item in the selected package see ThreadDB_Store.
Definition: threaddbCPP.h:234
virtual ~istream()
Definition: threaddbStream.h:154
Definition: threaddbCPP.h:28
Input stream buffer implementation.
Definition: threaddbStream.h:32
void Synchronize(uint64_t Package_p)
C++ wrapper to synchronize the package buffers prior reading see ThreadDB_Synchronize.
Definition: threaddbCPP.h:243
Output stream buffer implementation.
Definition: threaddbStream.h:89
Input stream implementation.
Definition: threaddbStream.h:148
C++ wrapper class of the threadDB file mapped memory container extension.
Definition: threaddbCPP.h:97
size_t Recover(size_t Size_p, char pData_p[], tdb::ReadInfo &rReadInfo_p)
C++ wrapper for stream reading of data items see ThreadDB_RecoverContinous.
Definition: threaddbCPP.h:289
virtual ~ostream()
Definition: threaddbStream.h:170
std::streambuf::int_type underflow()
Definition: threaddbStream.h:53
istream(uint64_t PackageID_p, tdb::database &rDatabase_p)
Definition: threaddbStream.h:151