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"