25#include <IceUtil/UUID.h>
30#include <mongo/client/dbclient.h>
35 const std::shared_ptr<std::mutex>& accessGridFSFilesMutex) :
36 gridFile(new
mongo::GridFile(gridFile)),
38 accessGridFSFilesMutex(accessGridFSFilesMutex)
40 iceId.name = IceUtil::generateUUID();
48 return gridFile->getFileField(
"_id").OID().toString();
54 return gridFile->getFilename();
60 return gridFile->getMD5();
66 return gridFile->getContentLength();
72 return gridFile->getUploadDate();
80 std::unique_lock l(*accessGridFSFilesMutex);
84 if (nextChunkNo < gridFile->getNumChunks())
86 mongo::GridFSChunk chunk = gridFile->getChunk(nextChunkNo++);
88 const char*
data = chunk.data(datalen);
89 buffer.resize(datalen);
90 memcpy(buffer.data(),
data, datalen);
101 <<
VAROUT(gridFile) <<
"\n"
102 <<
VAROUT(gridFile->getFilename()) <<
"\n"
103 <<
VAROUT(gridFile->exists()) <<
"\n"
104 <<
VAROUT(gridFile->getChunkSize()) <<
"\n"
105 <<
VAROUT(gridFile->getNumChunks()) <<
"\n"
106 <<
VAROUT(gridFile->getContentLength()) <<
"\n"
107 <<
VAROUT(gridFile->getContentType()) <<
"\n"
108 <<
VAROUT(gridFile->getMD5()) <<
"\n"
109 <<
VAROUT(gridFile->getMetadata().jsonString()) <<
"\n"
::Ice::Long getFileSize(const ::Ice::Current &=Ice::emptyCurrent) override
::std::string getMD5(const ::Ice::Current &=Ice::emptyCurrent) override
Ice::Identity getIceId() const
::Ice::Long getUploadDate(const ::Ice::Current &=Ice::emptyCurrent) override
::std::string getId(const ::Ice::Current &=Ice::emptyCurrent) override
::std::string getFilename(const ::Ice::Current &=Ice::emptyCurrent) override
::Ice::Int getNextChunk(::memoryx::Blob &buffer, const ::Ice::Current &=Ice::emptyCurrent) override
~GridFileWrapper() override
GridFileWrapper(const mongo::GridFile &gridFile, const std::shared_ptr< std::mutex > &accessGridFSFilesMutex)
#define ARMARX_ERROR
The logging level for unexpected behaviour, that must be fixed.
std::string GetHandledExceptionString()