SimpleQueryResult.cc 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563
  1. /*
  2. * Copyright 2009-2017 Alibaba Cloud All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include <alibabacloud/imm/model/SimpleQueryResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Imm;
  19. using namespace AlibabaCloud::Imm::Model;
  20. SimpleQueryResult::SimpleQueryResult() :
  21. ServiceResult()
  22. {}
  23. SimpleQueryResult::SimpleQueryResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. SimpleQueryResult::~SimpleQueryResult()
  29. {}
  30. void SimpleQueryResult::parse(const std::string &payload)
  31. {
  32. Json::Reader reader;
  33. Json::Value value;
  34. reader.parse(payload, value);
  35. setRequestId(value["RequestId"].asString());
  36. auto allFilesNode = value["Files"]["FilesItem"];
  37. for (auto valueFilesFilesItem : allFilesNode)
  38. {
  39. FilesItem filesObject;
  40. if(!valueFilesFilesItem["OwnerId"].isNull())
  41. filesObject.ownerId = valueFilesFilesItem["OwnerId"].asString();
  42. if(!valueFilesFilesItem["ProjectName"].isNull())
  43. filesObject.projectName = valueFilesFilesItem["ProjectName"].asString();
  44. if(!valueFilesFilesItem["DatasetName"].isNull())
  45. filesObject.datasetName = valueFilesFilesItem["DatasetName"].asString();
  46. if(!valueFilesFilesItem["ObjectType"].isNull())
  47. filesObject.objectType = valueFilesFilesItem["ObjectType"].asString();
  48. if(!valueFilesFilesItem["ObjectId"].isNull())
  49. filesObject.objectId = valueFilesFilesItem["ObjectId"].asString();
  50. if(!valueFilesFilesItem["UpdateTime"].isNull())
  51. filesObject.updateTime = valueFilesFilesItem["UpdateTime"].asString();
  52. if(!valueFilesFilesItem["CreateTime"].isNull())
  53. filesObject.createTime = valueFilesFilesItem["CreateTime"].asString();
  54. if(!valueFilesFilesItem["URI"].isNull())
  55. filesObject.uRI = valueFilesFilesItem["URI"].asString();
  56. if(!valueFilesFilesItem["OSSURI"].isNull())
  57. filesObject.oSSURI = valueFilesFilesItem["OSSURI"].asString();
  58. if(!valueFilesFilesItem["Filename"].isNull())
  59. filesObject.filename = valueFilesFilesItem["Filename"].asString();
  60. if(!valueFilesFilesItem["MediaType"].isNull())
  61. filesObject.mediaType = valueFilesFilesItem["MediaType"].asString();
  62. if(!valueFilesFilesItem["ContentType"].isNull())
  63. filesObject.contentType = valueFilesFilesItem["ContentType"].asString();
  64. if(!valueFilesFilesItem["Size"].isNull())
  65. filesObject.size = std::stol(valueFilesFilesItem["Size"].asString());
  66. if(!valueFilesFilesItem["FileHash"].isNull())
  67. filesObject.fileHash = valueFilesFilesItem["FileHash"].asString();
  68. if(!valueFilesFilesItem["FileModifiedTime"].isNull())
  69. filesObject.fileModifiedTime = valueFilesFilesItem["FileModifiedTime"].asString();
  70. if(!valueFilesFilesItem["FileCreateTime"].isNull())
  71. filesObject.fileCreateTime = valueFilesFilesItem["FileCreateTime"].asString();
  72. if(!valueFilesFilesItem["FileAccessTime"].isNull())
  73. filesObject.fileAccessTime = valueFilesFilesItem["FileAccessTime"].asString();
  74. if(!valueFilesFilesItem["ProduceTime"].isNull())
  75. filesObject.produceTime = valueFilesFilesItem["ProduceTime"].asString();
  76. if(!valueFilesFilesItem["LatLong"].isNull())
  77. filesObject.latLong = valueFilesFilesItem["LatLong"].asString();
  78. if(!valueFilesFilesItem["Timezone"].isNull())
  79. filesObject.timezone = valueFilesFilesItem["Timezone"].asString();
  80. if(!valueFilesFilesItem["TravelClusterId"].isNull())
  81. filesObject.travelClusterId = valueFilesFilesItem["TravelClusterId"].asString();
  82. if(!valueFilesFilesItem["Orientation"].isNull())
  83. filesObject.orientation = std::stol(valueFilesFilesItem["Orientation"].asString());
  84. if(!valueFilesFilesItem["FigureCount"].isNull())
  85. filesObject.figureCount = std::stol(valueFilesFilesItem["FigureCount"].asString());
  86. if(!valueFilesFilesItem["Title"].isNull())
  87. filesObject.title = valueFilesFilesItem["Title"].asString();
  88. if(!valueFilesFilesItem["ImageWidth"].isNull())
  89. filesObject.imageWidth = std::stol(valueFilesFilesItem["ImageWidth"].asString());
  90. if(!valueFilesFilesItem["ImageHeight"].isNull())
  91. filesObject.imageHeight = std::stol(valueFilesFilesItem["ImageHeight"].asString());
  92. if(!valueFilesFilesItem["EXIF"].isNull())
  93. filesObject.eXIF = valueFilesFilesItem["EXIF"].asString();
  94. if(!valueFilesFilesItem["VideoWidth"].isNull())
  95. filesObject.videoWidth = std::stol(valueFilesFilesItem["VideoWidth"].asString());
  96. if(!valueFilesFilesItem["VideoHeight"].isNull())
  97. filesObject.videoHeight = std::stol(valueFilesFilesItem["VideoHeight"].asString());
  98. if(!valueFilesFilesItem["Artist"].isNull())
  99. filesObject.artist = valueFilesFilesItem["Artist"].asString();
  100. if(!valueFilesFilesItem["AlbumArtist"].isNull())
  101. filesObject.albumArtist = valueFilesFilesItem["AlbumArtist"].asString();
  102. if(!valueFilesFilesItem["Composer"].isNull())
  103. filesObject.composer = valueFilesFilesItem["Composer"].asString();
  104. if(!valueFilesFilesItem["Performer"].isNull())
  105. filesObject.performer = valueFilesFilesItem["Performer"].asString();
  106. if(!valueFilesFilesItem["Language"].isNull())
  107. filesObject.language = valueFilesFilesItem["Language"].asString();
  108. if(!valueFilesFilesItem["Album"].isNull())
  109. filesObject.album = valueFilesFilesItem["Album"].asString();
  110. if(!valueFilesFilesItem["PageCount"].isNull())
  111. filesObject.pageCount = std::stol(valueFilesFilesItem["PageCount"].asString());
  112. if(!valueFilesFilesItem["DocumentText"].isNull())
  113. filesObject.documentText = valueFilesFilesItem["DocumentText"].asString();
  114. if(!valueFilesFilesItem["ETag"].isNull())
  115. filesObject.eTag = valueFilesFilesItem["ETag"].asString();
  116. if(!valueFilesFilesItem["CacheControl"].isNull())
  117. filesObject.cacheControl = valueFilesFilesItem["CacheControl"].asString();
  118. if(!valueFilesFilesItem["ContentDisposition"].isNull())
  119. filesObject.contentDisposition = valueFilesFilesItem["ContentDisposition"].asString();
  120. if(!valueFilesFilesItem["ContentEncoding"].isNull())
  121. filesObject.contentEncoding = valueFilesFilesItem["ContentEncoding"].asString();
  122. if(!valueFilesFilesItem["ContentLanguage"].isNull())
  123. filesObject.contentLanguage = valueFilesFilesItem["ContentLanguage"].asString();
  124. if(!valueFilesFilesItem["AccessControlAllowOrigin"].isNull())
  125. filesObject.accessControlAllowOrigin = valueFilesFilesItem["AccessControlAllowOrigin"].asString();
  126. if(!valueFilesFilesItem["AccessControlRequestMethod"].isNull())
  127. filesObject.accessControlRequestMethod = valueFilesFilesItem["AccessControlRequestMethod"].asString();
  128. if(!valueFilesFilesItem["ServerSideEncryptionCustomerAlgorithm"].isNull())
  129. filesObject.serverSideEncryptionCustomerAlgorithm = valueFilesFilesItem["ServerSideEncryptionCustomerAlgorithm"].asString();
  130. if(!valueFilesFilesItem["ServerSideEncryption"].isNull())
  131. filesObject.serverSideEncryption = valueFilesFilesItem["ServerSideEncryption"].asString();
  132. if(!valueFilesFilesItem["ServerSideDataEncryption"].isNull())
  133. filesObject.serverSideDataEncryption = valueFilesFilesItem["ServerSideDataEncryption"].asString();
  134. if(!valueFilesFilesItem["ServerSideEncryptionKeyId"].isNull())
  135. filesObject.serverSideEncryptionKeyId = valueFilesFilesItem["ServerSideEncryptionKeyId"].asString();
  136. if(!valueFilesFilesItem["OSSStorageClass"].isNull())
  137. filesObject.oSSStorageClass = valueFilesFilesItem["OSSStorageClass"].asString();
  138. if(!valueFilesFilesItem["OSSCRC64"].isNull())
  139. filesObject.oSSCRC64 = valueFilesFilesItem["OSSCRC64"].asString();
  140. if(!valueFilesFilesItem["ObjectACL"].isNull())
  141. filesObject.objectACL = valueFilesFilesItem["ObjectACL"].asString();
  142. if(!valueFilesFilesItem["ContentMd5"].isNull())
  143. filesObject.contentMd5 = valueFilesFilesItem["ContentMd5"].asString();
  144. if(!valueFilesFilesItem["OSSUserMeta"].isNull())
  145. filesObject.oSSUserMeta = valueFilesFilesItem["OSSUserMeta"].asString();
  146. if(!valueFilesFilesItem["OSSTaggingCount"].isNull())
  147. filesObject.oSSTaggingCount = std::stol(valueFilesFilesItem["OSSTaggingCount"].asString());
  148. if(!valueFilesFilesItem["OSSTagging"].isNull())
  149. filesObject.oSSTagging = valueFilesFilesItem["OSSTagging"].asString();
  150. if(!valueFilesFilesItem["OSSExpiration"].isNull())
  151. filesObject.oSSExpiration = valueFilesFilesItem["OSSExpiration"].asString();
  152. if(!valueFilesFilesItem["OSSVersionId"].isNull())
  153. filesObject.oSSVersionId = valueFilesFilesItem["OSSVersionId"].asString();
  154. if(!valueFilesFilesItem["OSSDeleteMarker"].isNull())
  155. filesObject.oSSDeleteMarker = valueFilesFilesItem["OSSDeleteMarker"].asString();
  156. if(!valueFilesFilesItem["OSSObjectType"].isNull())
  157. filesObject.oSSObjectType = valueFilesFilesItem["OSSObjectType"].asString();
  158. if(!valueFilesFilesItem["CustomId"].isNull())
  159. filesObject.customId = valueFilesFilesItem["CustomId"].asString();
  160. if(!valueFilesFilesItem["CustomLabels"].isNull())
  161. filesObject.customLabels = valueFilesFilesItem["CustomLabels"].asString();
  162. if(!valueFilesFilesItem["StreamCount"].isNull())
  163. filesObject.streamCount = std::stol(valueFilesFilesItem["StreamCount"].asString());
  164. if(!valueFilesFilesItem["ProgramCount"].isNull())
  165. filesObject.programCount = std::stol(valueFilesFilesItem["ProgramCount"].asString());
  166. if(!valueFilesFilesItem["FormatName"].isNull())
  167. filesObject.formatName = valueFilesFilesItem["FormatName"].asString();
  168. if(!valueFilesFilesItem["FormatLongName"].isNull())
  169. filesObject.formatLongName = valueFilesFilesItem["FormatLongName"].asString();
  170. if(!valueFilesFilesItem["StartTime"].isNull())
  171. filesObject.startTime = valueFilesFilesItem["StartTime"].asString();
  172. if(!valueFilesFilesItem["Bitrate"].isNull())
  173. filesObject.bitrate = std::stol(valueFilesFilesItem["Bitrate"].asString());
  174. if(!valueFilesFilesItem["Duration"].isNull())
  175. filesObject.duration = valueFilesFilesItem["Duration"].asString();
  176. auto allAddressesNode = valueFilesFilesItem["Addresses"]["AddressesItem"];
  177. for (auto valueFilesFilesItemAddressesAddressesItem : allAddressesNode)
  178. {
  179. FilesItem::AddressesItem addressesObject;
  180. if(!valueFilesFilesItemAddressesAddressesItem["Language"].isNull())
  181. addressesObject.language = valueFilesFilesItemAddressesAddressesItem["Language"].asString();
  182. if(!valueFilesFilesItemAddressesAddressesItem["AddressLine"].isNull())
  183. addressesObject.addressLine = valueFilesFilesItemAddressesAddressesItem["AddressLine"].asString();
  184. if(!valueFilesFilesItemAddressesAddressesItem["Country"].isNull())
  185. addressesObject.country = valueFilesFilesItemAddressesAddressesItem["Country"].asString();
  186. if(!valueFilesFilesItemAddressesAddressesItem["Province"].isNull())
  187. addressesObject.province = valueFilesFilesItemAddressesAddressesItem["Province"].asString();
  188. if(!valueFilesFilesItemAddressesAddressesItem["City"].isNull())
  189. addressesObject.city = valueFilesFilesItemAddressesAddressesItem["City"].asString();
  190. if(!valueFilesFilesItemAddressesAddressesItem["District"].isNull())
  191. addressesObject.district = valueFilesFilesItemAddressesAddressesItem["District"].asString();
  192. if(!valueFilesFilesItemAddressesAddressesItem["Township"].isNull())
  193. addressesObject.township = valueFilesFilesItemAddressesAddressesItem["Township"].asString();
  194. filesObject.addresses.push_back(addressesObject);
  195. }
  196. auto allFiguresNode = valueFilesFilesItem["Figures"]["FiguresItem"];
  197. for (auto valueFilesFilesItemFiguresFiguresItem : allFiguresNode)
  198. {
  199. FilesItem::FiguresItem figuresObject;
  200. if(!valueFilesFilesItemFiguresFiguresItem["FigureId"].isNull())
  201. figuresObject.figureId = valueFilesFilesItemFiguresFiguresItem["FigureId"].asString();
  202. if(!valueFilesFilesItemFiguresFiguresItem["FigureConfidence"].isNull())
  203. figuresObject.figureConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["FigureConfidence"].asString());
  204. if(!valueFilesFilesItemFiguresFiguresItem["FigureClusterId"].isNull())
  205. figuresObject.figureClusterId = valueFilesFilesItemFiguresFiguresItem["FigureClusterId"].asString();
  206. if(!valueFilesFilesItemFiguresFiguresItem["FigureClusterConfidence"].isNull())
  207. figuresObject.figureClusterConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["FigureClusterConfidence"].asString());
  208. if(!valueFilesFilesItemFiguresFiguresItem["FigureType"].isNull())
  209. figuresObject.figureType = valueFilesFilesItemFiguresFiguresItem["FigureType"].asString();
  210. if(!valueFilesFilesItemFiguresFiguresItem["Age"].isNull())
  211. figuresObject.age = std::stol(valueFilesFilesItemFiguresFiguresItem["Age"].asString());
  212. if(!valueFilesFilesItemFiguresFiguresItem["AgeSD"].isNull())
  213. figuresObject.ageSD = std::stof(valueFilesFilesItemFiguresFiguresItem["AgeSD"].asString());
  214. if(!valueFilesFilesItemFiguresFiguresItem["Gender"].isNull())
  215. figuresObject.gender = valueFilesFilesItemFiguresFiguresItem["Gender"].asString();
  216. if(!valueFilesFilesItemFiguresFiguresItem["GenderConfidence"].isNull())
  217. figuresObject.genderConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["GenderConfidence"].asString());
  218. if(!valueFilesFilesItemFiguresFiguresItem["Emotion"].isNull())
  219. figuresObject.emotion = valueFilesFilesItemFiguresFiguresItem["Emotion"].asString();
  220. if(!valueFilesFilesItemFiguresFiguresItem["EmotionConfidence"].isNull())
  221. figuresObject.emotionConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["EmotionConfidence"].asString());
  222. if(!valueFilesFilesItemFiguresFiguresItem["FaceQuality"].isNull())
  223. figuresObject.faceQuality = std::stof(valueFilesFilesItemFiguresFiguresItem["FaceQuality"].asString());
  224. if(!valueFilesFilesItemFiguresFiguresItem["Mouth"].isNull())
  225. figuresObject.mouth = valueFilesFilesItemFiguresFiguresItem["Mouth"].asString();
  226. if(!valueFilesFilesItemFiguresFiguresItem["MouthConfidence"].isNull())
  227. figuresObject.mouthConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["MouthConfidence"].asString());
  228. if(!valueFilesFilesItemFiguresFiguresItem["Beard"].isNull())
  229. figuresObject.beard = valueFilesFilesItemFiguresFiguresItem["Beard"].asString();
  230. if(!valueFilesFilesItemFiguresFiguresItem["BeardConfidence"].isNull())
  231. figuresObject.beardConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["BeardConfidence"].asString());
  232. if(!valueFilesFilesItemFiguresFiguresItem["Hat"].isNull())
  233. figuresObject.hat = valueFilesFilesItemFiguresFiguresItem["Hat"].asString();
  234. if(!valueFilesFilesItemFiguresFiguresItem["HatConfidence"].isNull())
  235. figuresObject.hatConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["HatConfidence"].asString());
  236. if(!valueFilesFilesItemFiguresFiguresItem["Mask"].isNull())
  237. figuresObject.mask = valueFilesFilesItemFiguresFiguresItem["Mask"].asString();
  238. if(!valueFilesFilesItemFiguresFiguresItem["MaskConfidence"].isNull())
  239. figuresObject.maskConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["MaskConfidence"].asString());
  240. if(!valueFilesFilesItemFiguresFiguresItem["Glasses"].isNull())
  241. figuresObject.glasses = valueFilesFilesItemFiguresFiguresItem["Glasses"].asString();
  242. if(!valueFilesFilesItemFiguresFiguresItem["GlassesConfidence"].isNull())
  243. figuresObject.glassesConfidence = std::stof(valueFilesFilesItemFiguresFiguresItem["GlassesConfidence"].asString());
  244. if(!valueFilesFilesItemFiguresFiguresItem["Sharpness"].isNull())
  245. figuresObject.sharpness = std::stof(valueFilesFilesItemFiguresFiguresItem["Sharpness"].asString());
  246. if(!valueFilesFilesItemFiguresFiguresItem["Attractive"].isNull())
  247. figuresObject.attractive = std::stof(valueFilesFilesItemFiguresFiguresItem["Attractive"].asString());
  248. auto boundaryNode = value["Boundary"];
  249. if(!boundaryNode["Width"].isNull())
  250. figuresObject.boundary.width = std::stol(boundaryNode["Width"].asString());
  251. if(!boundaryNode["Height"].isNull())
  252. figuresObject.boundary.height = std::stol(boundaryNode["Height"].asString());
  253. if(!boundaryNode["Left"].isNull())
  254. figuresObject.boundary.left = std::stol(boundaryNode["Left"].asString());
  255. if(!boundaryNode["Top"].isNull())
  256. figuresObject.boundary.top = std::stol(boundaryNode["Top"].asString());
  257. auto headPoseNode = value["HeadPose"];
  258. if(!headPoseNode["Pitch"].isNull())
  259. figuresObject.headPose.pitch = std::stof(headPoseNode["Pitch"].asString());
  260. if(!headPoseNode["Roll"].isNull())
  261. figuresObject.headPose.roll = std::stof(headPoseNode["Roll"].asString());
  262. if(!headPoseNode["Yaw"].isNull())
  263. figuresObject.headPose.yaw = std::stof(headPoseNode["Yaw"].asString());
  264. filesObject.figures.push_back(figuresObject);
  265. }
  266. auto allLabelsNode = valueFilesFilesItem["Labels"]["LabelsItem"];
  267. for (auto valueFilesFilesItemLabelsLabelsItem : allLabelsNode)
  268. {
  269. FilesItem::LabelsItem labelsObject;
  270. if(!valueFilesFilesItemLabelsLabelsItem["Language"].isNull())
  271. labelsObject.language = valueFilesFilesItemLabelsLabelsItem["Language"].asString();
  272. if(!valueFilesFilesItemLabelsLabelsItem["LabelName"].isNull())
  273. labelsObject.labelName = valueFilesFilesItemLabelsLabelsItem["LabelName"].asString();
  274. if(!valueFilesFilesItemLabelsLabelsItem["LabelLevel"].isNull())
  275. labelsObject.labelLevel = std::stol(valueFilesFilesItemLabelsLabelsItem["LabelLevel"].asString());
  276. if(!valueFilesFilesItemLabelsLabelsItem["LabelConfidence"].isNull())
  277. labelsObject.labelConfidence = std::stof(valueFilesFilesItemLabelsLabelsItem["LabelConfidence"].asString());
  278. if(!valueFilesFilesItemLabelsLabelsItem["ParentLabelName"].isNull())
  279. labelsObject.parentLabelName = valueFilesFilesItemLabelsLabelsItem["ParentLabelName"].asString();
  280. if(!valueFilesFilesItemLabelsLabelsItem["CentricScore"].isNull())
  281. labelsObject.centricScore = std::stof(valueFilesFilesItemLabelsLabelsItem["CentricScore"].asString());
  282. filesObject.labels.push_back(labelsObject);
  283. }
  284. auto allCroppingSuggestionsNode = valueFilesFilesItem["CroppingSuggestions"]["CroppingSuggestionsItem"];
  285. for (auto valueFilesFilesItemCroppingSuggestionsCroppingSuggestionsItem : allCroppingSuggestionsNode)
  286. {
  287. FilesItem::CroppingSuggestionsItem croppingSuggestionsObject;
  288. if(!valueFilesFilesItemCroppingSuggestionsCroppingSuggestionsItem["AspectRatio"].isNull())
  289. croppingSuggestionsObject.aspectRatio = valueFilesFilesItemCroppingSuggestionsCroppingSuggestionsItem["AspectRatio"].asString();
  290. if(!valueFilesFilesItemCroppingSuggestionsCroppingSuggestionsItem["Confidence"].isNull())
  291. croppingSuggestionsObject.confidence = std::stof(valueFilesFilesItemCroppingSuggestionsCroppingSuggestionsItem["Confidence"].asString());
  292. auto boundary1Node = value["Boundary"];
  293. if(!boundary1Node["Width"].isNull())
  294. croppingSuggestionsObject.boundary1.width = std::stol(boundary1Node["Width"].asString());
  295. if(!boundary1Node["Height"].isNull())
  296. croppingSuggestionsObject.boundary1.height = std::stol(boundary1Node["Height"].asString());
  297. if(!boundary1Node["Left"].isNull())
  298. croppingSuggestionsObject.boundary1.left = std::stol(boundary1Node["Left"].asString());
  299. if(!boundary1Node["Top"].isNull())
  300. croppingSuggestionsObject.boundary1.top = std::stol(boundary1Node["Top"].asString());
  301. filesObject.croppingSuggestions.push_back(croppingSuggestionsObject);
  302. }
  303. auto allOCRContentsNode = valueFilesFilesItem["OCRContents"]["OCRContentsItem"];
  304. for (auto valueFilesFilesItemOCRContentsOCRContentsItem : allOCRContentsNode)
  305. {
  306. FilesItem::OCRContentsItem oCRContentsObject;
  307. if(!valueFilesFilesItemOCRContentsOCRContentsItem["Language"].isNull())
  308. oCRContentsObject.language = valueFilesFilesItemOCRContentsOCRContentsItem["Language"].asString();
  309. if(!valueFilesFilesItemOCRContentsOCRContentsItem["Contents"].isNull())
  310. oCRContentsObject.contents = valueFilesFilesItemOCRContentsOCRContentsItem["Contents"].asString();
  311. if(!valueFilesFilesItemOCRContentsOCRContentsItem["Confidence"].isNull())
  312. oCRContentsObject.confidence = std::stof(valueFilesFilesItemOCRContentsOCRContentsItem["Confidence"].asString());
  313. auto boundary2Node = value["Boundary"];
  314. if(!boundary2Node["Width"].isNull())
  315. oCRContentsObject.boundary2.width = std::stol(boundary2Node["Width"].asString());
  316. if(!boundary2Node["Height"].isNull())
  317. oCRContentsObject.boundary2.height = std::stol(boundary2Node["Height"].asString());
  318. if(!boundary2Node["Left"].isNull())
  319. oCRContentsObject.boundary2.left = std::stol(boundary2Node["Left"].asString());
  320. if(!boundary2Node["Top"].isNull())
  321. oCRContentsObject.boundary2.top = std::stol(boundary2Node["Top"].asString());
  322. filesObject.oCRContents.push_back(oCRContentsObject);
  323. }
  324. auto allVideoStreamsNode = valueFilesFilesItem["VideoStreams"]["VideoStreamsItem"];
  325. for (auto valueFilesFilesItemVideoStreamsVideoStreamsItem : allVideoStreamsNode)
  326. {
  327. FilesItem::VideoStreamsItem videoStreamsObject;
  328. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Index"].isNull())
  329. videoStreamsObject.index = std::stol(valueFilesFilesItemVideoStreamsVideoStreamsItem["Index"].asString());
  330. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Language"].isNull())
  331. videoStreamsObject.language = valueFilesFilesItemVideoStreamsVideoStreamsItem["Language"].asString();
  332. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecName"].isNull())
  333. videoStreamsObject.codecName = valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecName"].asString();
  334. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecLongName"].isNull())
  335. videoStreamsObject.codecLongName = valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecLongName"].asString();
  336. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Profile"].isNull())
  337. videoStreamsObject.profile = valueFilesFilesItemVideoStreamsVideoStreamsItem["Profile"].asString();
  338. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecTimeBase"].isNull())
  339. videoStreamsObject.codecTimeBase = valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecTimeBase"].asString();
  340. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecTagString"].isNull())
  341. videoStreamsObject.codecTagString = valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecTagString"].asString();
  342. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecTag"].isNull())
  343. videoStreamsObject.codecTag = valueFilesFilesItemVideoStreamsVideoStreamsItem["CodecTag"].asString();
  344. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Width"].isNull())
  345. videoStreamsObject.width = std::stol(valueFilesFilesItemVideoStreamsVideoStreamsItem["Width"].asString());
  346. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Height"].isNull())
  347. videoStreamsObject.height = std::stol(valueFilesFilesItemVideoStreamsVideoStreamsItem["Height"].asString());
  348. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["HasBFrames"].isNull())
  349. videoStreamsObject.hasBFrames = std::stol(valueFilesFilesItemVideoStreamsVideoStreamsItem["HasBFrames"].asString());
  350. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["SampleAspectRatio"].isNull())
  351. videoStreamsObject.sampleAspectRatio = valueFilesFilesItemVideoStreamsVideoStreamsItem["SampleAspectRatio"].asString();
  352. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["DisplayAspectRatio"].isNull())
  353. videoStreamsObject.displayAspectRatio = valueFilesFilesItemVideoStreamsVideoStreamsItem["DisplayAspectRatio"].asString();
  354. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["PixelFormat"].isNull())
  355. videoStreamsObject.pixelFormat = valueFilesFilesItemVideoStreamsVideoStreamsItem["PixelFormat"].asString();
  356. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Level"].isNull())
  357. videoStreamsObject.level = std::stol(valueFilesFilesItemVideoStreamsVideoStreamsItem["Level"].asString());
  358. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["FrameRate"].isNull())
  359. videoStreamsObject.frameRate = valueFilesFilesItemVideoStreamsVideoStreamsItem["FrameRate"].asString();
  360. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["AverageFrameRate"].isNull())
  361. videoStreamsObject.averageFrameRate = valueFilesFilesItemVideoStreamsVideoStreamsItem["AverageFrameRate"].asString();
  362. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["TimeBase"].isNull())
  363. videoStreamsObject.timeBase = valueFilesFilesItemVideoStreamsVideoStreamsItem["TimeBase"].asString();
  364. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["StartTime"].isNull())
  365. videoStreamsObject.startTime = valueFilesFilesItemVideoStreamsVideoStreamsItem["StartTime"].asString();
  366. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Duration"].isNull())
  367. videoStreamsObject.duration = valueFilesFilesItemVideoStreamsVideoStreamsItem["Duration"].asString();
  368. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Bitrate"].isNull())
  369. videoStreamsObject.bitrate = std::stol(valueFilesFilesItemVideoStreamsVideoStreamsItem["Bitrate"].asString());
  370. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["FrameCount"].isNull())
  371. videoStreamsObject.frameCount = std::stol(valueFilesFilesItemVideoStreamsVideoStreamsItem["FrameCount"].asString());
  372. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["Rotate"].isNull())
  373. videoStreamsObject.rotate = valueFilesFilesItemVideoStreamsVideoStreamsItem["Rotate"].asString();
  374. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["BitDepth"].isNull())
  375. videoStreamsObject.bitDepth = std::stol(valueFilesFilesItemVideoStreamsVideoStreamsItem["BitDepth"].asString());
  376. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["ColorSpace"].isNull())
  377. videoStreamsObject.colorSpace = valueFilesFilesItemVideoStreamsVideoStreamsItem["ColorSpace"].asString();
  378. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["ColorRange"].isNull())
  379. videoStreamsObject.colorRange = valueFilesFilesItemVideoStreamsVideoStreamsItem["ColorRange"].asString();
  380. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["ColorTransfer"].isNull())
  381. videoStreamsObject.colorTransfer = valueFilesFilesItemVideoStreamsVideoStreamsItem["ColorTransfer"].asString();
  382. if(!valueFilesFilesItemVideoStreamsVideoStreamsItem["ColorPrimaries"].isNull())
  383. videoStreamsObject.colorPrimaries = valueFilesFilesItemVideoStreamsVideoStreamsItem["ColorPrimaries"].asString();
  384. filesObject.videoStreams.push_back(videoStreamsObject);
  385. }
  386. auto allSubtitlesNode = valueFilesFilesItem["Subtitles"]["SubtitlesItem"];
  387. for (auto valueFilesFilesItemSubtitlesSubtitlesItem : allSubtitlesNode)
  388. {
  389. FilesItem::SubtitlesItem subtitlesObject;
  390. if(!valueFilesFilesItemSubtitlesSubtitlesItem["Index"].isNull())
  391. subtitlesObject.index = std::stol(valueFilesFilesItemSubtitlesSubtitlesItem["Index"].asString());
  392. if(!valueFilesFilesItemSubtitlesSubtitlesItem["Language"].isNull())
  393. subtitlesObject.language = valueFilesFilesItemSubtitlesSubtitlesItem["Language"].asString();
  394. if(!valueFilesFilesItemSubtitlesSubtitlesItem["CodecName"].isNull())
  395. subtitlesObject.codecName = valueFilesFilesItemSubtitlesSubtitlesItem["CodecName"].asString();
  396. if(!valueFilesFilesItemSubtitlesSubtitlesItem["CodecLongName"].isNull())
  397. subtitlesObject.codecLongName = valueFilesFilesItemSubtitlesSubtitlesItem["CodecLongName"].asString();
  398. if(!valueFilesFilesItemSubtitlesSubtitlesItem["CodecTagString"].isNull())
  399. subtitlesObject.codecTagString = valueFilesFilesItemSubtitlesSubtitlesItem["CodecTagString"].asString();
  400. if(!valueFilesFilesItemSubtitlesSubtitlesItem["CodecTag"].isNull())
  401. subtitlesObject.codecTag = valueFilesFilesItemSubtitlesSubtitlesItem["CodecTag"].asString();
  402. if(!valueFilesFilesItemSubtitlesSubtitlesItem["StartTime"].isNull())
  403. subtitlesObject.startTime = valueFilesFilesItemSubtitlesSubtitlesItem["StartTime"].asString();
  404. if(!valueFilesFilesItemSubtitlesSubtitlesItem["Duration"].isNull())
  405. subtitlesObject.duration = valueFilesFilesItemSubtitlesSubtitlesItem["Duration"].asString();
  406. if(!valueFilesFilesItemSubtitlesSubtitlesItem["Bitrate"].isNull())
  407. subtitlesObject.bitrate = std::stol(valueFilesFilesItemSubtitlesSubtitlesItem["Bitrate"].asString());
  408. if(!valueFilesFilesItemSubtitlesSubtitlesItem["Content"].isNull())
  409. subtitlesObject.content = valueFilesFilesItemSubtitlesSubtitlesItem["Content"].asString();
  410. if(!valueFilesFilesItemSubtitlesSubtitlesItem["Width"].isNull())
  411. subtitlesObject.width = std::stol(valueFilesFilesItemSubtitlesSubtitlesItem["Width"].asString());
  412. if(!valueFilesFilesItemSubtitlesSubtitlesItem["Height"].isNull())
  413. subtitlesObject.height = std::stol(valueFilesFilesItemSubtitlesSubtitlesItem["Height"].asString());
  414. filesObject.subtitles.push_back(subtitlesObject);
  415. }
  416. auto allAudioStreamsNode = valueFilesFilesItem["AudioStreams"]["AudioStreamsItem"];
  417. for (auto valueFilesFilesItemAudioStreamsAudioStreamsItem : allAudioStreamsNode)
  418. {
  419. FilesItem::AudioStreamsItem audioStreamsObject;
  420. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["Index"].isNull())
  421. audioStreamsObject.index = std::stol(valueFilesFilesItemAudioStreamsAudioStreamsItem["Index"].asString());
  422. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["Language"].isNull())
  423. audioStreamsObject.language = valueFilesFilesItemAudioStreamsAudioStreamsItem["Language"].asString();
  424. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecName"].isNull())
  425. audioStreamsObject.codecName = valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecName"].asString();
  426. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecLongName"].isNull())
  427. audioStreamsObject.codecLongName = valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecLongName"].asString();
  428. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecTimeBase"].isNull())
  429. audioStreamsObject.codecTimeBase = valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecTimeBase"].asString();
  430. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecTagString"].isNull())
  431. audioStreamsObject.codecTagString = valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecTagString"].asString();
  432. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecTag"].isNull())
  433. audioStreamsObject.codecTag = valueFilesFilesItemAudioStreamsAudioStreamsItem["CodecTag"].asString();
  434. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["TimeBase"].isNull())
  435. audioStreamsObject.timeBase = valueFilesFilesItemAudioStreamsAudioStreamsItem["TimeBase"].asString();
  436. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["StartTime"].isNull())
  437. audioStreamsObject.startTime = valueFilesFilesItemAudioStreamsAudioStreamsItem["StartTime"].asString();
  438. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["Duration"].isNull())
  439. audioStreamsObject.duration = valueFilesFilesItemAudioStreamsAudioStreamsItem["Duration"].asString();
  440. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["Bitrate"].isNull())
  441. audioStreamsObject.bitrate = std::stol(valueFilesFilesItemAudioStreamsAudioStreamsItem["Bitrate"].asString());
  442. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["FrameCount"].isNull())
  443. audioStreamsObject.frameCount = std::stol(valueFilesFilesItemAudioStreamsAudioStreamsItem["FrameCount"].asString());
  444. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["Lyric"].isNull())
  445. audioStreamsObject.lyric = valueFilesFilesItemAudioStreamsAudioStreamsItem["Lyric"].asString();
  446. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["SampleFormat"].isNull())
  447. audioStreamsObject.sampleFormat = valueFilesFilesItemAudioStreamsAudioStreamsItem["SampleFormat"].asString();
  448. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["SampleRate"].isNull())
  449. audioStreamsObject.sampleRate = std::stol(valueFilesFilesItemAudioStreamsAudioStreamsItem["SampleRate"].asString());
  450. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["Channels"].isNull())
  451. audioStreamsObject.channels = std::stol(valueFilesFilesItemAudioStreamsAudioStreamsItem["Channels"].asString());
  452. if(!valueFilesFilesItemAudioStreamsAudioStreamsItem["ChannelLayout"].isNull())
  453. audioStreamsObject.channelLayout = valueFilesFilesItemAudioStreamsAudioStreamsItem["ChannelLayout"].asString();
  454. filesObject.audioStreams.push_back(audioStreamsObject);
  455. }
  456. auto allAudioCoversNode = valueFilesFilesItem["AudioCovers"]["AudioCoversItem"];
  457. for (auto valueFilesFilesItemAudioCoversAudioCoversItem : allAudioCoversNode)
  458. {
  459. FilesItem::AudioCoversItem audioCoversObject;
  460. if(!valueFilesFilesItemAudioCoversAudioCoversItem["ImageWidth"].isNull())
  461. audioCoversObject.imageWidth = std::stol(valueFilesFilesItemAudioCoversAudioCoversItem["ImageWidth"].asString());
  462. if(!valueFilesFilesItemAudioCoversAudioCoversItem["ImageHeight"].isNull())
  463. audioCoversObject.imageHeight = std::stol(valueFilesFilesItemAudioCoversAudioCoversItem["ImageHeight"].asString());
  464. if(!valueFilesFilesItemAudioCoversAudioCoversItem["EXIF"].isNull())
  465. audioCoversObject.eXIF = valueFilesFilesItemAudioCoversAudioCoversItem["EXIF"].asString();
  466. auto allCroppingSuggestions4Node = valueFilesFilesItemAudioCoversAudioCoversItem["CroppingSuggestions"]["CroppingSuggestionsItem"];
  467. for (auto valueFilesFilesItemAudioCoversAudioCoversItemCroppingSuggestionsCroppingSuggestionsItem : allCroppingSuggestions4Node)
  468. {
  469. FilesItem::AudioCoversItem::CroppingSuggestionsItem6 croppingSuggestions4Object;
  470. if(!valueFilesFilesItemAudioCoversAudioCoversItemCroppingSuggestionsCroppingSuggestionsItem["AspectRatio"].isNull())
  471. croppingSuggestions4Object.aspectRatio = valueFilesFilesItemAudioCoversAudioCoversItemCroppingSuggestionsCroppingSuggestionsItem["AspectRatio"].asString();
  472. if(!valueFilesFilesItemAudioCoversAudioCoversItemCroppingSuggestionsCroppingSuggestionsItem["Confidence"].isNull())
  473. croppingSuggestions4Object.confidence = std::stof(valueFilesFilesItemAudioCoversAudioCoversItemCroppingSuggestionsCroppingSuggestionsItem["Confidence"].asString());
  474. auto boundary7Node = value["Boundary"];
  475. if(!boundary7Node["Width"].isNull())
  476. croppingSuggestions4Object.boundary7.width = std::stol(boundary7Node["Width"].asString());
  477. if(!boundary7Node["Height"].isNull())
  478. croppingSuggestions4Object.boundary7.height = std::stol(boundary7Node["Height"].asString());
  479. if(!boundary7Node["Left"].isNull())
  480. croppingSuggestions4Object.boundary7.left = std::stol(boundary7Node["Left"].asString());
  481. if(!boundary7Node["Top"].isNull())
  482. croppingSuggestions4Object.boundary7.top = std::stol(boundary7Node["Top"].asString());
  483. audioCoversObject.croppingSuggestions4.push_back(croppingSuggestions4Object);
  484. }
  485. auto allOCRContents5Node = valueFilesFilesItemAudioCoversAudioCoversItem["OCRContents"]["OCRContentsItem"];
  486. for (auto valueFilesFilesItemAudioCoversAudioCoversItemOCRContentsOCRContentsItem : allOCRContents5Node)
  487. {
  488. FilesItem::AudioCoversItem::OCRContentsItem8 oCRContents5Object;
  489. if(!valueFilesFilesItemAudioCoversAudioCoversItemOCRContentsOCRContentsItem["Language"].isNull())
  490. oCRContents5Object.language = valueFilesFilesItemAudioCoversAudioCoversItemOCRContentsOCRContentsItem["Language"].asString();
  491. if(!valueFilesFilesItemAudioCoversAudioCoversItemOCRContentsOCRContentsItem["Contents"].isNull())
  492. oCRContents5Object.contents = valueFilesFilesItemAudioCoversAudioCoversItemOCRContentsOCRContentsItem["Contents"].asString();
  493. if(!valueFilesFilesItemAudioCoversAudioCoversItemOCRContentsOCRContentsItem["Confidence"].isNull())
  494. oCRContents5Object.confidence = std::stof(valueFilesFilesItemAudioCoversAudioCoversItemOCRContentsOCRContentsItem["Confidence"].asString());
  495. auto boundary9Node = value["Boundary"];
  496. if(!boundary9Node["Width"].isNull())
  497. oCRContents5Object.boundary9.width = std::stol(boundary9Node["Width"].asString());
  498. if(!boundary9Node["Height"].isNull())
  499. oCRContents5Object.boundary9.height = std::stol(boundary9Node["Height"].asString());
  500. if(!boundary9Node["Left"].isNull())
  501. oCRContents5Object.boundary9.left = std::stol(boundary9Node["Left"].asString());
  502. if(!boundary9Node["Top"].isNull())
  503. oCRContents5Object.boundary9.top = std::stol(boundary9Node["Top"].asString());
  504. audioCoversObject.oCRContents5.push_back(oCRContents5Object);
  505. }
  506. auto imageScore3Node = value["ImageScore"];
  507. if(!imageScore3Node["OverallQualityScore"].isNull())
  508. audioCoversObject.imageScore3.overallQualityScore = std::stof(imageScore3Node["OverallQualityScore"].asString());
  509. filesObject.audioCovers.push_back(audioCoversObject);
  510. }
  511. auto imageScoreNode = value["ImageScore"];
  512. if(!imageScoreNode["OverallQualityScore"].isNull())
  513. filesObject.imageScore.overallQualityScore = std::stof(imageScoreNode["OverallQualityScore"].asString());
  514. files_.push_back(filesObject);
  515. }
  516. auto allAggregationsNode = value["Aggregations"]["AggregationsItem"];
  517. for (auto valueAggregationsAggregationsItem : allAggregationsNode)
  518. {
  519. AggregationsItem aggregationsObject;
  520. if(!valueAggregationsAggregationsItem["Field"].isNull())
  521. aggregationsObject.field = valueAggregationsAggregationsItem["Field"].asString();
  522. if(!valueAggregationsAggregationsItem["Operation"].isNull())
  523. aggregationsObject.operation = valueAggregationsAggregationsItem["Operation"].asString();
  524. if(!valueAggregationsAggregationsItem["Value"].isNull())
  525. aggregationsObject.value = valueAggregationsAggregationsItem["Value"].asString();
  526. auto allGroupsNode = valueAggregationsAggregationsItem["Groups"]["GroupsItem"];
  527. for (auto valueAggregationsAggregationsItemGroupsGroupsItem : allGroupsNode)
  528. {
  529. AggregationsItem::GroupsItem groupsObject;
  530. if(!valueAggregationsAggregationsItemGroupsGroupsItem["Value"].isNull())
  531. groupsObject.value = valueAggregationsAggregationsItemGroupsGroupsItem["Value"].asString();
  532. if(!valueAggregationsAggregationsItemGroupsGroupsItem["Count"].isNull())
  533. groupsObject.count = std::stol(valueAggregationsAggregationsItemGroupsGroupsItem["Count"].asString());
  534. aggregationsObject.groups.push_back(groupsObject);
  535. }
  536. aggregations_.push_back(aggregationsObject);
  537. }
  538. if(!value["NextToken"].isNull())
  539. nextToken_ = value["NextToken"].asString();
  540. }
  541. std::string SimpleQueryResult::getNextToken()const
  542. {
  543. return nextToken_;
  544. }
  545. std::vector<SimpleQueryResult::AggregationsItem> SimpleQueryResult::getAggregations()const
  546. {
  547. return aggregations_;
  548. }
  549. std::vector<SimpleQueryResult::FilesItem> SimpleQueryResult::getFiles()const
  550. {
  551. return files_;
  552. }