MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / Blob

Class Blob

src/remote/client/interface.cpp:190–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

188class Statement;
189
190class Blob final : public RefCntIface<IBlobImpl<Blob, CheckStatusWrapper> >
191{
192public:
193 // IBlob implementation
194 int release() override;
195 void getInfo(CheckStatusWrapper* status,
196 unsigned int itemsLength, const unsigned char* items,
197 unsigned int bufferLength, unsigned char* buffer) override;
198 int getSegment(CheckStatusWrapper* status, unsigned int bufferLength,
199 void* buffer, unsigned int* segmentLength) override;
200 void putSegment(CheckStatusWrapper* status, unsigned int length, const void* buffer) override;
201 void cancel(CheckStatusWrapper* status) override;
202 void close(CheckStatusWrapper* status) override;
203 int seek(CheckStatusWrapper* status, int mode, int offset) override; // returns position
204 void deprecatedCancel(CheckStatusWrapper* status) override;
205 void deprecatedClose(CheckStatusWrapper* status) override;
206
207public:
208 explicit Blob(Rbl* handle)
209 : blob(handle)
210 {
211 blob->rbl_self = &blob;
212 }
213
214private:
215 void freeClientData(CheckStatusWrapper* status, bool force = false);
216 void internalCancel(CheckStatusWrapper* status);
217 void internalClose(CheckStatusWrapper* status);
218 // seek in cached blob
219 int seekCached(int mode, int offset);
220
221 Rbl* blob;
222};
223
224int Blob::release()
225{

Callers 2

createBlobMethod · 0.70
openBlobMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected