fiftyone-devicedetection-onpremise 4.5.0a28__tar.gz → 4.5.0a30__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/PKG-INFO +1 -1
  2. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/collection.c +13 -13
  3. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/collection.h +4 -5
  4. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/component.c +1 -1
  5. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/fiftyone.h +4 -0
  6. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/file.c +45 -10
  7. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/file.h +25 -2
  8. fiftyone_devicedetection_onpremise-4.5.0a30/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/fileOffset.h +74 -0
  9. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/memory.h +2 -1
  10. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/storedBinaryValue.c +67 -5
  11. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/FixedSizeCollection.hpp +2 -1
  12. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/VariableSizeCollection.hpp +1 -1
  13. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise.egg-info/PKG-INFO +1 -1
  14. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise.egg-info/SOURCES.txt +1 -0
  15. fiftyone_devicedetection_onpremise-4.5.0a30/version.txt +1 -0
  16. fiftyone_devicedetection_onpremise-4.5.0a28/version.txt +0 -1
  17. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/MANIFEST.in +0 -0
  18. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/pyproject.toml +0 -0
  19. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/setup.cfg +0 -0
  20. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/setup.py +0 -0
  21. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/DeviceDetectionHashEngineModule.py +0 -0
  22. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/__init__.py +0 -0
  23. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/constants.py +0 -0
  24. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/ConfigDeviceDetection.cpp +0 -0
  25. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/ConfigDeviceDetection.hpp +0 -0
  26. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/ConfigDeviceDetection.i +0 -0
  27. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/EngineDeviceDetection.cpp +0 -0
  28. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/EngineDeviceDetection.hpp +0 -0
  29. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/EngineDeviceDetection.i +0 -0
  30. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/EvidenceDeviceDetection.cpp +0 -0
  31. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/EvidenceDeviceDetection.hpp +0 -0
  32. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/EvidenceDeviceDetection.i +0 -0
  33. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/FiftyoneDegrees.hpp +0 -0
  34. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/ResultsDeviceDetection.cpp +0 -0
  35. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/ResultsDeviceDetection.hpp +0 -0
  36. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/ResultsDeviceDetection.i +0 -0
  37. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/Transform.cpp +0 -0
  38. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/Transform.hpp +0 -0
  39. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/Transform.i +0 -0
  40. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Collection.hpp +0 -0
  41. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Collection.i +0 -0
  42. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/CollectionConfig.cpp +0 -0
  43. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/CollectionConfig.hpp +0 -0
  44. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/CollectionConfig.i +0 -0
  45. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ComponentMetaData.cpp +0 -0
  46. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ComponentMetaData.hpp +0 -0
  47. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ComponentMetaData.i +0 -0
  48. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ConfigBase.cpp +0 -0
  49. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ConfigBase.hpp +0 -0
  50. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ConfigBase.i +0 -0
  51. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/CsTypes.i +0 -0
  52. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Date.cpp +0 -0
  53. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Date.hpp +0 -0
  54. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Date.i +0 -0
  55. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EngineBase.cpp +0 -0
  56. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EngineBase.hpp +0 -0
  57. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EngineBase.i +0 -0
  58. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EntityMetaData.hpp +0 -0
  59. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EntityMetaDataBuilder.hpp +0 -0
  60. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EvidenceBase.cpp +0 -0
  61. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EvidenceBase.hpp +0 -0
  62. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EvidenceBase.i +0 -0
  63. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Exceptions.cpp +0 -0
  64. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Exceptions.hpp +0 -0
  65. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Exceptions.i +0 -0
  66. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/FiftyoneDegrees.hpp +0 -0
  67. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/IpAddress.cpp +0 -0
  68. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/IpAddress.hpp +0 -0
  69. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/IpAddress.i +0 -0
  70. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/JavaTypes.i +0 -0
  71. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/MapStringStringIterator.i +0 -0
  72. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/MetaData.cpp +0 -0
  73. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/MetaData.hpp +0 -0
  74. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/MetaData.i +0 -0
  75. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ProfileMetaData.cpp +0 -0
  76. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ProfileMetaData.hpp +0 -0
  77. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ProfileMetaData.i +0 -0
  78. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/PropertyMetaData.cpp +0 -0
  79. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/PropertyMetaData.hpp +0 -0
  80. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/PropertyMetaData.i +0 -0
  81. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/RequiredPropertiesConfig.cpp +0 -0
  82. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/RequiredPropertiesConfig.hpp +0 -0
  83. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/RequiredPropertiesConfig.i +0 -0
  84. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ResultsBase.cpp +0 -0
  85. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ResultsBase.hpp +0 -0
  86. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ResultsBase.i +0 -0
  87. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Types.i +0 -0
  88. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Value.hpp +0 -0
  89. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Value.i +0 -0
  90. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ValueMetaData.cpp +0 -0
  91. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ValueMetaData.hpp +0 -0
  92. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ValueMetaData.i +0 -0
  93. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/array.h +0 -0
  94. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/bool.c +0 -0
  95. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/bool.h +0 -0
  96. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/cache.c +0 -0
  97. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/cache.h +0 -0
  98. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/common.h +0 -0
  99. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/component.h +0 -0
  100. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/config.h +0 -0
  101. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/constants.h +0 -0
  102. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/data.c +0 -0
  103. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/data.h +0 -0
  104. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/dataset.c +0 -0
  105. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/dataset.h +0 -0
  106. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/date.h +0 -0
  107. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/evidence.c +0 -0
  108. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/evidence.h +0 -0
  109. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/exceptions.h +0 -0
  110. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/exceptionsc.c +0 -0
  111. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/float.c +0 -0
  112. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/float.h +0 -0
  113. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/headers.c +0 -0
  114. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/headers.h +0 -0
  115. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/indices.c +0 -0
  116. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/indices.h +0 -0
  117. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ip.c +0 -0
  118. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ip.h +0 -0
  119. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ip.i +0 -0
  120. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/json.c +0 -0
  121. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/json.h +0 -0
  122. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/list.c +0 -0
  123. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/list.h +0 -0
  124. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/memory.c +0 -0
  125. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/overrides.c +0 -0
  126. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/overrides.h +0 -0
  127. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/pair.h +0 -0
  128. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/pool.c +0 -0
  129. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/pool.h +0 -0
  130. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/process.c +0 -0
  131. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/process.h +0 -0
  132. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/profile.c +0 -0
  133. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/profile.h +0 -0
  134. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/properties.c +0 -0
  135. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/properties.h +0 -0
  136. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/property.c +0 -0
  137. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/property.h +0 -0
  138. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/propertyValueType.h +0 -0
  139. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/resource.c +0 -0
  140. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/resource.h +0 -0
  141. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/results.c +0 -0
  142. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/results.h +0 -0
  143. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/snprintf.h +0 -0
  144. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/status.c +0 -0
  145. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/status.h +0 -0
  146. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/storedBinaryValue.h +0 -0
  147. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/string.c +0 -0
  148. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/string.h +0 -0
  149. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/stringBuilder.c +0 -0
  150. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/stringBuilder.h +0 -0
  151. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/string_pp.cpp +0 -0
  152. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/string_pp.hpp +0 -0
  153. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/Base.hpp +0 -0
  154. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/EngineTests.hpp +0 -0
  155. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/EvidenceTests.hpp +0 -0
  156. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/ExampleTests.hpp +0 -0
  157. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/FileHandle.hpp +0 -0
  158. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/HeadersContainer.hpp +0 -0
  159. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/StringCollection.hpp +0 -0
  160. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/TestStrings.hpp +0 -0
  161. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/pch.h +0 -0
  162. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/textfile.c +0 -0
  163. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/textfile.h +0 -0
  164. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/threading.c +0 -0
  165. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/threading.h +0 -0
  166. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tree.c +0 -0
  167. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tree.h +0 -0
  168. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/value.c +0 -0
  169. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/value.h +0 -0
  170. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/wkbtot.c +0 -0
  171. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/wkbtot.h +0 -0
  172. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/wkbtot_pp.cpp +0 -0
  173. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/wkbtot_pp.hpp +0 -0
  174. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/yamlfile.c +0 -0
  175. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/yamlfile.h +0 -0
  176. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/config-dd.h +0 -0
  177. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/dataset-dd.c +0 -0
  178. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/dataset-dd.h +0 -0
  179. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/fiftyone.h +0 -0
  180. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/gethighentropyvalues.c +0 -0
  181. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/gethighentropyvalues.h +0 -0
  182. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ComponentMetaDataBuilderHash.cpp +0 -0
  183. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ComponentMetaDataBuilderHash.hpp +0 -0
  184. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ComponentMetaDataCollectionHash.cpp +0 -0
  185. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ComponentMetaDataCollectionHash.hpp +0 -0
  186. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ConfigHash.cpp +0 -0
  187. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ConfigHash.hpp +0 -0
  188. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ConfigHash.i +0 -0
  189. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/EngineHash.cpp +0 -0
  190. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/EngineHash.hpp +0 -0
  191. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/EngineHash.i +0 -0
  192. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/MetaDataHash.cpp +0 -0
  193. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/MetaDataHash.hpp +0 -0
  194. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ProfileMetaDataBuilderHash.cpp +0 -0
  195. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ProfileMetaDataBuilderHash.hpp +0 -0
  196. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ProfileMetaDataCollectionHash.cpp +0 -0
  197. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ProfileMetaDataCollectionHash.hpp +0 -0
  198. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataBuilderHash.cpp +0 -0
  199. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataBuilderHash.hpp +0 -0
  200. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionForComponentHash.cpp +0 -0
  201. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionForComponentHash.hpp +0 -0
  202. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionForPropertyHash.cpp +0 -0
  203. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionForPropertyHash.hpp +0 -0
  204. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionHash.cpp +0 -0
  205. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionHash.hpp +0 -0
  206. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHash.cpp +0 -0
  207. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHash.hpp +0 -0
  208. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHash.i +0 -0
  209. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHashSerializer.cpp +0 -0
  210. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHashSerializer.hpp +0 -0
  211. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHashSerializer.i +0 -0
  212. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataBuilderHash.cpp +0 -0
  213. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataBuilderHash.hpp +0 -0
  214. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionBaseHash.cpp +0 -0
  215. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionBaseHash.hpp +0 -0
  216. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionForProfileHash.cpp +0 -0
  217. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionForProfileHash.hpp +0 -0
  218. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionForPropertyHash.cpp +0 -0
  219. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionForPropertyHash.hpp +0 -0
  220. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionHash.cpp +0 -0
  221. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionHash.hpp +0 -0
  222. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/fiftyone.h +0 -0
  223. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/graph.c +0 -0
  224. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/graph.h +0 -0
  225. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/hash.c +0 -0
  226. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/hash.h +0 -0
  227. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/hash.i +0 -0
  228. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/results-dd.c +0 -0
  229. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/results-dd.h +0 -0
  230. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/transform.h +0 -0
  231. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/cxx/src/transformc.c +0 -0
  232. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/devicedetection_datafile.py +0 -0
  233. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/devicedetection_onpremise.py +0 -0
  234. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/devicedetection_onpremise_pipelinebuilder.py +0 -0
  235. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/hash_python_wrap.cxx +0 -0
  236. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise/swig_data.py +0 -0
  237. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise.egg-info/dependency_links.txt +0 -0
  238. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise.egg-info/requires.txt +0 -0
  239. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/src/fiftyone_devicedetection_onpremise.egg-info/top_level.txt +0 -0
  240. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/tests/test_automatic_data_file_updates.py +0 -0
  241. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/tests/test_devicedetection.py +0 -0
  242. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/tests/test_properties.py +0 -0
  243. {fiftyone_devicedetection_onpremise-4.5.0a28 → fiftyone_devicedetection_onpremise-4.5.0a30}/tests/test_swig.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiftyone_devicedetection_onpremise
3
- Version: 4.5.0a28
3
+ Version: 4.5.0a30
4
4
  Summary: This project contains 51Degrees Device Detection OnPremise engine that can be used with the 51Degrees Pipeline API. The Pipeline is a generic web request intelligence and data processing solution with the ability to add a range of 51Degrees and/or custom plug ins (Engines)
5
5
  Author: 51Degrees Engineering
6
6
  Author-email: engineering@51degrees.com
@@ -517,10 +517,10 @@ static CollectionFile* readFile(CollectionFile *fileCollection, FILE *file) {
517
517
  }
518
518
 
519
519
  // Record the offset in the source file to the collection.
520
- fileCollection->offset = ftell(file);
520
+ fileCollection->offset = FileTell(file);
521
521
 
522
522
  // Move the file handle past the collection.
523
- if (fseek(file, fileCollection->collection->size, SEEK_CUR) != 0) {
523
+ if (FileSeek(file, fileCollection->collection->size, SEEK_CUR) != 0) {
524
524
  return NULL;
525
525
  }
526
526
 
@@ -596,7 +596,7 @@ static Collection* createFromFilePartial(
596
596
  memory->memoryToFree = memory->firstByte;
597
597
 
598
598
  // Position the file reader at the start of the collection.
599
- if (fseek(file, header->startPosition, SEEK_SET) != 0) {
599
+ if (FileSeek(file, header->startPosition, SEEK_SET) != 0) {
600
600
  freeMemoryCollection(collection);
601
601
  source->freeCollection(source);
602
602
  return NULL;
@@ -611,7 +611,7 @@ static Collection* createFromFilePartial(
611
611
  }
612
612
 
613
613
  // Move the file position to the byte after the collection.
614
- if (fseek(file, source->size - memory->collection->size, SEEK_CUR) != 0) {
614
+ if (FileSeek(file, source->size - memory->collection->size, SEEK_CUR) != 0) {
615
615
  freeMemoryCollection(collection);
616
616
  source->freeCollection(source);
617
617
  return NULL;
@@ -702,7 +702,7 @@ static Collection* createFromFileSecond(
702
702
 
703
703
  // Return the file position to the start of the collection ready to
704
704
  // read the next collection.
705
- if (fseek(file, header.startPosition, SEEK_SET) == 0) {
705
+ if (FileSeek(file, header.startPosition, SEEK_SET) == 0) {
706
706
 
707
707
  // Choose between the cached or file based collection.
708
708
  if (config->capacity > 0 && config->concurrency > 0) {
@@ -748,7 +748,7 @@ fiftyoneDegreesCollectionHeader fiftyoneDegreesCollectionHeaderFromMemory(
748
748
 
749
749
  // Advance the memory reader and record the start of the collection.
750
750
  if (MemoryAdvance(reader, sizeof(uint32_t))) {
751
- header.startPosition = (uint32_t)(reader->current - reader->startByte);
751
+ header.startPosition = (FileOffsetUnsigned)(reader->current - reader->startByte);
752
752
  }
753
753
  else {
754
754
  header.startPosition = 0;
@@ -762,7 +762,7 @@ fiftyoneDegreesCollection* fiftyoneDegreesCollectionCreateFromMemory(
762
762
  fiftyoneDegreesCollectionHeader header) {
763
763
 
764
764
  // Validate the header and the reader are in sync at the correct position.
765
- if ((uint32_t)(reader->current - reader->startByte) !=
765
+ if ((FileOffsetUnsigned)(reader->current - reader->startByte) !=
766
766
  header.startPosition) {
767
767
  return NULL;
768
768
  }
@@ -829,7 +829,7 @@ fiftyoneDegreesCollectionHeader fiftyoneDegreesCollectionHeaderFromFile(
829
829
  header.length = sizeOrCount;
830
830
  header.count = elementSize > 0 ? header.length / elementSize : 0;
831
831
  }
832
- header.startPosition = (uint32_t)ftell(file);
832
+ header.startPosition = (FileOffsetUnsigned)FileTell(file);
833
833
  }
834
834
  else {
835
835
  header.startPosition = 0;
@@ -876,7 +876,7 @@ fiftyoneDegreesCollection* fiftyoneDegreesCollectionCreateFromFile(
876
876
 
877
877
  if (result == NULL || (
878
878
  result->count == config->loaded &&
879
- (long)result->size < (long)(ftell(file) - header.startPosition))) {
879
+ (FileOffset)result->size < (FileTell(file) - (FileOffset)header.startPosition))) {
880
880
 
881
881
  // Create the next collection if one is needed.
882
882
  *next = createFromFileSecond(file, reader, config, header, read);
@@ -910,11 +910,11 @@ fiftyoneDegreesCollection* fiftyoneDegreesCollectionCreateFromFile(
910
910
  }
911
911
 
912
912
  memory.startByte = memory.current;
913
- memory.length = (long)header.length;
913
+ memory.length = (FileOffset)header.length;
914
914
  memory.lastByte = memory.current + memory.length;
915
915
 
916
916
  // Position the file reader at the start of the collection.
917
- if (fseek(file, header.startPosition, SEEK_SET) != 0) {
917
+ if (FileSeek(file, header.startPosition, SEEK_SET) != 0) {
918
918
  free(data);
919
919
  return NULL;
920
920
  }
@@ -961,7 +961,7 @@ fiftyoneDegreesFileHandle* fiftyoneDegreesCollectionReadFilePosition(
961
961
 
962
962
  // Move to the start of the record in the file handling success or
963
963
  // failure of the operation via the status code.
964
- if (fseek(handle->file, file->offset + offset, SEEK_SET) != 0) {
964
+ if (FileSeek(handle->file, file->offset + offset, SEEK_SET) != 0) {
965
965
 
966
966
  // Release the handle as the operation failed.
967
967
  FileHandleRelease(handle);
@@ -1048,7 +1048,7 @@ static void* readFileVariable(
1048
1048
  void *ptr = NULL;
1049
1049
 
1050
1050
  // Set the file position to the start of the item being read.
1051
- if (fseek(handle->file, fileCollection->offset + offset, SEEK_SET) == 0) {
1051
+ if (FileSeek(handle->file, fileCollection->offset + offset, SEEK_SET) == 0) {
1052
1052
 
1053
1053
  // Read the item header minus the last part of the structure
1054
1054
  // that may not always be included with every item.
@@ -246,7 +246,6 @@
246
246
  #include "common.h"
247
247
  #include <stdio.h>
248
248
  #include <string.h>
249
- #include <assert.h>
250
249
 
251
250
  /**
252
251
  * Free a collection by checking if it is NULL first.
@@ -272,9 +271,9 @@ if (c != NULL) { c->freeCollection(c); }
272
271
  * Collection header structure which defines the size and location of the
273
272
  * collection data.
274
273
  */
275
- #pragma pack(push, 4)
274
+ #pragma pack(push, 1)
276
275
  typedef struct fiftyone_degrees_collection_header_t {
277
- uint32_t startPosition; /**< Start position in the data file of the entities */
276
+ fiftyoneDegreesFileOffsetUnsigned startPosition; /**< Start position in the data file of the entities */
278
277
  uint32_t length; /**< Length in bytes of all the entities */
279
278
  uint32_t count; /**< Number of entities in the collection */
280
279
  } fiftyoneDegreesCollectionHeader;
@@ -319,7 +318,7 @@ typedef struct fiftyone_degrees_collection_item_t {
319
318
  * if the item could not be loaded. The exception parameter is set to the
320
319
  * status code to indicate the failure.
321
320
  * @param collection pointer to the file collection
322
- * @param offsetOrIndex index or offset to the item in the data structure
321
+ * @param indexOrOffset index or offset to the item in the data structure
323
322
  * @param item pointer to the item structure to place the result in
324
323
  * @param exception pointer to an exception data structure to be used if an
325
324
  * exception occurs. See exceptions.h.
@@ -446,7 +445,7 @@ typedef struct fiftyone_degrees_collection_file_t {
446
445
  fiftyoneDegreesCollection *collection; /**< The generic collection */
447
446
  fiftyoneDegreesFilePool *reader; /**< Reader used to load items into the
448
447
  cache, or NULL if no cache */
449
- long offset; /**< Offset to the collection in the source data structure */
448
+ fiftyoneDegreesFileOffset offset; /**< Offset to the collection in the source data structure */
450
449
  fiftyoneDegreesCollectionFileRead read; /**< Read method used to read an
451
450
  item from file at an offset or
452
451
  index */
@@ -44,7 +44,7 @@ uint32_t fiftyoneDegreesComponentGetDefaultProfileId(
44
44
  &profileItem,
45
45
  exception);
46
46
  if (profile != NULL && EXCEPTION_OKAY) {
47
- profileId = (uint32_t)profile->profileId;
47
+ profileId = profile->profileId;
48
48
  COLLECTION_RELEASE(profiles, &profileItem);
49
49
  }
50
50
  return profileId;
@@ -113,6 +113,8 @@ MAP_TYPE(CollectionCache)
113
113
  MAP_TYPE(CollectionFileRead)
114
114
  #endif
115
115
  MAP_TYPE(FileHandle)
116
+ MAP_TYPE(FileOffset)
117
+ MAP_TYPE(FileOffsetUnsigned)
116
118
  MAP_TYPE(CacheNode)
117
119
  MAP_TYPE(FilePool)
118
120
  MAP_TYPE(CollectionHeader)
@@ -254,6 +256,8 @@ MAP_TYPE(WkbtotResult)
254
256
  #define HeadersFree fiftyoneDegreesHeadersFree /**< Synonym for #fiftyoneDegreesHeadersFree function. */
255
257
  #define PropertiesFree fiftyoneDegreesPropertiesFree /**< Synonym for #fiftyoneDegreesPropertiesFree function. */
256
258
  #define FilePoolRelease fiftyoneDegreesFilePoolRelease /**< Synonym for #fiftyoneDegreesFilePoolRelease function. */
259
+ #define FileSeek fiftyoneDegreesFileSeek /**< Synonym for #fiftyoneDegreesFileSeek function. */
260
+ #define FileTell fiftyoneDegreesFileTell /**< Synonym for #fiftyoneDegreesFileTell function. */
257
261
  #define FileDelete fiftyoneDegreesFileDelete /**< Synonym for #fiftyoneDegreesFileDelete function. */
258
262
  #define FilePoolReset fiftyoneDegreesFilePoolReset /**< Synonym for #fiftyoneDegreesFilePoolReset function. */
259
263
  #define PropertiesCreate fiftyoneDegreesPropertiesCreate /**< Synonym for #fiftyoneDegreesPropertiesCreate function. */
@@ -28,6 +28,7 @@
28
28
  #ifdef _MSC_VER
29
29
  #include <windows.h>
30
30
  #else
31
+ #include <stdio.h>
31
32
  #include <unistd.h>
32
33
  #endif
33
34
 
@@ -77,14 +78,48 @@ static void freeFileHandle(Pool *pool, void *fileHandle) {
77
78
  #pragma warning (default:4100)
78
79
  #endif
79
80
 
80
- static long fileGetSize(FILE *file) {
81
+ int fiftyoneDegreesFileSeek(
82
+ FILE * const stream,
83
+ const FileOffset offset,
84
+ const int origin) {
85
+
86
+ return
87
+ #ifdef FIFTYONE_DEGREES_LARGE_DATA_FILE_SUPPORT
88
+ # ifdef _MSC_VER
89
+ _fseeki64
90
+ # else
91
+ fseeko
92
+ # endif
93
+ #else
94
+ fseek
95
+ #endif
96
+ (stream, offset, origin);
97
+ }
98
+
99
+ FileOffset fiftyoneDegreesFileTell(FILE * const stream) {
100
+
101
+ return
102
+ #ifdef FIFTYONE_DEGREES_LARGE_DATA_FILE_SUPPORT
103
+ # ifdef _MSC_VER
104
+ _ftelli64
105
+ # else
106
+ ftello
107
+ # endif
108
+ #else
109
+ ftell
110
+ #endif
111
+ (stream);
112
+ }
113
+
114
+
115
+ static FileOffset fileGetSize(FILE *file) {
81
116
  if (fseek(file, 0L, SEEK_END) == 0) {
82
- return ftell(file);
117
+ return FileTell(file);
83
118
  }
84
119
  return -1;
85
120
  }
86
121
 
87
- static long setLength(FilePool *reader, Exception *exception) {
122
+ static FileOffset setLength(FilePool *reader, Exception *exception) {
88
123
  FileHandle *handle;
89
124
  reader->length = 0;
90
125
  handle = FileHandleGet(reader, exception);
@@ -259,7 +294,7 @@ static bool compareFiles(
259
294
  long bytesToCompare) {
260
295
  StatusCode status;
261
296
  FILE *file, *otherFile;
262
- long size, read;
297
+ FileOffset size, read;
263
298
  byte buffer[1024], otherBuffer[1024];
264
299
 
265
300
  // Compare the sizes.
@@ -278,11 +313,11 @@ static bool compareFiles(
278
313
  return false;
279
314
  }
280
315
 
281
- while (ftell(file) < size &&
282
- (bytesToCompare < 0 || ftell(file) < bytesToCompare)) {
316
+ while (FileTell(file) < size &&
317
+ (bytesToCompare < 0 || FileTell(file) < bytesToCompare)) {
283
318
  read = bytesToCompare > 0 ? bytesToCompare : (long)sizeof(buffer);
284
- if (size - ftell(file) < read) {
285
- read = size - ftell(file);
319
+ if (size - FileTell(file) < read) {
320
+ read = size - FileTell(file);
286
321
  }
287
322
 
288
323
  if (fread(buffer, read, 1, file) != 1) {
@@ -1041,9 +1076,9 @@ fiftyoneDegreesStatusCode fiftyoneDegreesFileCopy(
1041
1076
  return status;
1042
1077
  }
1043
1078
 
1044
- long fiftyoneDegreesFileGetSize(const char *source) {
1079
+ FileOffset fiftyoneDegreesFileGetSize(const char *source) {
1045
1080
  FILE *sourceFile;
1046
- long size = -1;
1081
+ FileOffset size = -1;
1047
1082
  if (FileOpen(source, &sourceFile) == SUCCESS) {
1048
1083
  size = fileGetSize(sourceFile);
1049
1084
  fclose(sourceFile);
@@ -171,6 +171,7 @@
171
171
  #include <limits.h>
172
172
  #include <time.h>
173
173
  #include "data.h"
174
+ #include "fileOffset.h"
174
175
  #include "exceptions.h"
175
176
  #include "status.h"
176
177
  #include "memory.h"
@@ -213,6 +214,7 @@
213
214
  #define FIFTYONE_DEGREES_FILE_MAX_PATH 4096
214
215
  #endif
215
216
 
217
+
216
218
  /**
217
219
  * File handle node in the stack of handles.
218
220
  */
@@ -226,9 +228,30 @@ typedef union fiftyone_degrees_file_handle_t {
226
228
  */
227
229
  typedef struct fiftyone_degrees_file_pool_t {
228
230
  fiftyoneDegreesPool pool; /**< The pool of file handles */
229
- long length; /**< Length of the file in bytes */
231
+ fiftyoneDegreesFileOffset length; /**< Length of the file in bytes */
230
232
  } fiftyoneDegreesFilePool;
231
233
 
234
+ /**
235
+ * Moves the file pointer to a specified location.
236
+ * @param stream Pointer to FILE structure.
237
+ * @param offset Number of bytes from origin.
238
+ * @param origin Initial position.
239
+ * @return
240
+ */
241
+ EXTERNAL int fiftyoneDegreesFileSeek(
242
+ FILE *stream,
243
+ fiftyoneDegreesFileOffset offset,
244
+ int origin);
245
+
246
+ /**
247
+ * Gets the current position of a file pointer.
248
+ * @param stream Target FILE structure.
249
+ * @return The current file position.
250
+ */
251
+ EXTERNAL fiftyoneDegreesFileOffset fiftyoneDegreesFileTell(
252
+ FILE *stream
253
+ );
254
+
232
255
  /**
233
256
  * Releases the file handles contained in the pool and frees any internal
234
257
  * memory used by the pool. Does not free the memory pointed to by pool.
@@ -455,7 +478,7 @@ EXTERNAL void fiftyoneDegreesFileHandleRelease(
455
478
  * @param fileName path to the file
456
479
  * @return size of file in bytes or -1
457
480
  */
458
- EXTERNAL long fiftyoneDegreesFileGetSize(const char *fileName);
481
+ EXTERNAL fiftyoneDegreesFileOffset fiftyoneDegreesFileGetSize(const char *fileName);
459
482
 
460
483
  /**
461
484
  * Reads the contents of a file into memory. The correct amount of memory will
@@ -0,0 +1,74 @@
1
+ /* *********************************************************************
2
+ * This Original Work is copyright of 51 Degrees Mobile Experts Limited.
3
+ * Copyright 2025 51 Degrees Mobile Experts Limited, Davidson House,
4
+ * Forbury Square, Reading, Berkshire, United Kingdom RG1 3EU.
5
+ *
6
+ * This Original Work is licensed under the European Union Public Licence
7
+ * (EUPL) v.1.2 and is subject to its terms as set out below.
8
+ *
9
+ * If a copy of the EUPL was not distributed with this file, You can obtain
10
+ * one at https://opensource.org/licenses/EUPL-1.2.
11
+ *
12
+ * The 'Compatible Licences' set out in the Appendix to the EUPL (as may be
13
+ * amended by the European Commission) shall be deemed incompatible for
14
+ * the purposes of the Work and the provisions of the compatibility
15
+ * clause in Article 5 of the EUPL shall not apply.
16
+ *
17
+ * If using the Work as, or as part of, a network application, by
18
+ * including the attribution notice(s) required under Article 5 of the EUPL
19
+ * in the end user terms of the application under an appropriate heading,
20
+ * such notice(s) shall fulfill the requirements of that article.
21
+ * ********************************************************************* */
22
+
23
+ #ifndef FIFTYONE_DEGREES_FILE_OFFSET_H_INCLUDED
24
+ #define FIFTYONE_DEGREES_FILE_OFFSET_H_INCLUDED
25
+
26
+ /**
27
+ * @ingroup FiftyOneDegreesCommon
28
+ * @defgroup FiftyOneDegreesFile FileOffset
29
+ *
30
+ * `FileOffset` offset types:
31
+ * - signed `FileOffset` -- for interop with native API (fseek/ftell)
32
+ * - unsigned `FileOffsetUnsigned` -- as present in data file
33
+ *
34
+ *
35
+ * if FIFTYONE_DEGREES_LARGE_DATA_FILE_SUPPORT macro is defined,
36
+ * both types will be 64-bit.
37
+ *
38
+ * Motivation for this is that an offset in a large file
39
+ * beyond 4GB is not addressable by a `uint32_t` variable.
40
+ *
41
+ * For files smaller than 4GB `uint32_t` is fully sufficient to address an offset.
42
+ *
43
+ * `fseek`/`ftell` functions MAY also fail on files larger than 2 GiB
44
+ * due to the limitations of `long int` type used,
45
+ * so enabling the option MIGHT be necessary in those cases as well.
46
+ *
47
+ * On POSIX systems `_FILE_OFFSET_BITS` should be defined as `64` at the same time
48
+ * for `off_t` (used by `fseeko`/`ftello` from `<stdio.h>`) to be 64-bit as well.
49
+ *
50
+ * @{
51
+ */
52
+
53
+ #include <stdint.h>
54
+
55
+ typedef
56
+ #ifdef FIFTYONE_DEGREES_LARGE_DATA_FILE_SUPPORT
57
+ uint64_t
58
+ #else
59
+ uint32_t
60
+ #endif
61
+ fiftyoneDegreesFileOffsetUnsigned; /**< Type for collection start offset (in file). [unsigned] */
62
+
63
+ typedef
64
+ #ifdef FIFTYONE_DEGREES_LARGE_DATA_FILE_SUPPORT
65
+ int64_t
66
+ #else
67
+ long
68
+ #endif
69
+ fiftyoneDegreesFileOffset; /**< Type for file offset in API. [signed] */
70
+
71
+ /**
72
+ * @}
73
+ */
74
+ #endif
@@ -40,6 +40,7 @@
40
40
  #include "threading.h"
41
41
  #include "tree.h"
42
42
  #include "common.h"
43
+ #include "fileOffset.h"
43
44
 
44
45
  #ifdef _MSC_VER
45
46
  #define FIFTYONE_DEGREES_CALL_CONV __cdecl
@@ -54,7 +55,7 @@ typedef struct fiftyone_degrees_memory_reader_t {
54
55
  byte *startByte; /**< The first byte in memory */
55
56
  byte *current; /**< The current byte being read from */
56
57
  byte *lastByte; /**< The maximum byte that can be read from */
57
- long length; /**< Length of the file in bytes */
58
+ fiftyoneDegreesFileOffset length; /**< Length of the file in bytes */
58
59
  } fiftyoneDegreesMemoryReader;
59
60
 
60
61
  /**
@@ -44,6 +44,12 @@ static uint32_t getFinalIntegerSize(void *initial) {
44
44
 
45
45
  #ifndef FIFTYONE_DEGREES_MEMORY_ONLY
46
46
 
47
+ /**
48
+ * Type for temporary memory keeping the value of
49
+ * `storedValueType`: `fiftyoneDegreesPropertyValueType`
50
+ * for "File" and/or "Partial" collections
51
+ * between calls from `StoredBinaryValueGet` to `StoredBinaryValueRead`.
52
+ */
47
53
  typedef uint8_t PropertyValueTypeInData;
48
54
 
49
55
  void* fiftyoneDegreesStoredBinaryValueRead(
@@ -52,10 +58,20 @@ void* fiftyoneDegreesStoredBinaryValueRead(
52
58
  fiftyoneDegreesData * const data,
53
59
  fiftyoneDegreesException * const exception) {
54
60
  int16_t length;
61
+
62
+ // When collection getter is called from `StoredBinaryValueRead`,
63
+ // the latter will save `storedValueType` into item's Data.
64
+ //
65
+ // Otherwise -- if the data is in clear state (e.g. after DataReset),
66
+ // the caller is assumed to have requested a "String" value.
67
+ // (for compatibility with `StringRead`-initialized collections).
68
+
55
69
  if (data->used < sizeof(PropertyValueTypeInData)) {
56
- // stored value type not known
70
+ // stored value type not known,
71
+ // => assume String
57
72
  return fiftyoneDegreesStringRead(file, offset, data, exception);
58
73
  };
74
+
59
75
  const PropertyValueType storedValueType = *(const PropertyValueTypeInData *)data->ptr;
60
76
  switch (storedValueType) {
61
77
  case FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_STRING: {
@@ -108,15 +124,61 @@ StoredBinaryValue* fiftyoneDegreesStoredBinaryValueGet(
108
124
  fiftyoneDegreesCollectionItem *item,
109
125
  Exception *exception) {
110
126
 
127
+ #ifndef FIFTYONE_DEGREES_MEMORY_ONLY
128
+ // CollectionReadFileVariable subroutine needs to know
129
+ // - how many bytes constitute the "header" of the variable
130
+ // - how to extract the remaining "length" of the variable from the "header"
131
+ //
132
+ // for that we must pass `storedValueType`
133
+
134
+ // Allocate a memory to hold `storedValueType` on stack.
135
+ //
136
+ // Use an array to prevent a warning
137
+ // > `pointer to a local variable potentially escaping scope`
138
+ //
139
+ // The data will either:
140
+ // - remain unowned
141
+ // (and `ptr` won't be dereferenced),
142
+ // or
143
+ // - is already owned and considered disposable
144
+ // (so `storedValueType` will be copied, and no escaping will occur).
145
+
111
146
  PropertyValueTypeInData storedValueTypeInData[1] = { storedValueType };
112
- if (item->data.allocated) {
113
- DataMalloc(&item->data, sizeof(uint32_t));
114
- *((PropertyValueTypeInData*)item->data.ptr) = storedValueTypeInData[0];
115
- } else {
147
+
148
+ if (!item->data.allocated) {
149
+ // It is assumed -- as part of the Collection-CollectionItem contract --
150
+ // that data of the Item passed into "get" is NOT owned by that item.
151
+
116
152
  item->data.ptr = (byte *)&storedValueTypeInData[0];
153
+ } else {
154
+ // Since _this_ function _technically_ is NOT a "getter method"
155
+ // we might still get an Item that owns some memory.
156
+ //
157
+ // Since no collection would leave Data pointing to internal memory
158
+ // (past COLLECTION_RELEASE call -- mandatory for Item to be reused)
159
+ // assume the Data is disposable.
160
+ //
161
+ // Ensure Data is of sufficient size and copy `storedValueType` into it.
162
+
163
+ DataMalloc(&item->data, sizeof(PropertyValueTypeInData));
164
+ *((PropertyValueTypeInData*)item->data.ptr) = storedValueTypeInData[0];
117
165
  }
118
166
  item->data.used = sizeof(PropertyValueTypeInData);
119
167
 
168
+ #else
169
+ // In MEMORY_ONLY mode,
170
+ //
171
+ // we only need to get the pointer to beginning of the data structure
172
+ // inside the whole body of the data file.
173
+ //
174
+ // `storedValueType` is not used, since we do not need to allocate
175
+ // a sufficient (unknown before reading starts) amount of memory
176
+ // to read the bytes into.
177
+ # ifdef _MSC_VER
178
+ UNREFERENCED_PARAMETER(storedValueType);
179
+ # endif
180
+ #endif
181
+
120
182
  StoredBinaryValue * const result = strings->get(
121
183
  strings,
122
184
  offset,
@@ -25,6 +25,7 @@
25
25
 
26
26
  #include "../collection.h"
27
27
  #include "../string.h"
28
+ #include "../fileOffset.h"
28
29
  #include <vector>
29
30
 
30
31
  typedef struct fixed_size_collection_state_t {
@@ -63,7 +64,7 @@ FixedSizeCollection<T>::FixedSizeCollection(const std::vector<T> &values) {
63
64
  size_t dataLength = values.size() * sizeof(T);
64
65
  state.count = (uint32_t) values.size();
65
66
 
66
- reader.length = (long)(dataLength + sizeof(uint32_t));
67
+ reader.length = (fiftyoneDegreesFileOffset)(dataLength + sizeof(uint32_t));
67
68
  state.data = fiftyoneDegreesMalloc(reader.length);
68
69
  *(int32_t*)state.data = (int32_t)dataLength;
69
70
  state.offsets = (uint32_t*)fiftyoneDegreesMalloc(values.size() * sizeof(uint32_t));
@@ -63,7 +63,7 @@ VariableSizeCollection<T>::VariableSizeCollection(const std::vector<T> &values)
63
63
  size_t dataLength = values.size() * sizeof(T);
64
64
  state.count = (uint32_t) values.size();
65
65
 
66
- reader.length = (long)(dataLength + sizeof(uint32_t));
66
+ reader.length = (FileOffset)(dataLength + sizeof(uint32_t));
67
67
  state.data = fiftyoneDegreesMalloc(reader.length);
68
68
  *(int32_t*)state.data = (int32_t)dataLength;
69
69
  state.offsets = (uint32_t*)fiftyoneDegreesMalloc(values.size() * sizeof(uint32_t));
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiftyone-devicedetection-onpremise
3
- Version: 4.5.0a28
3
+ Version: 4.5.0a30
4
4
  Summary: This project contains 51Degrees Device Detection OnPremise engine that can be used with the 51Degrees Pipeline API. The Pipeline is a generic web request intelligence and data processing solution with the ability to add a range of 51Degrees and/or custom plug ins (Engines)
5
5
  Author: 51Degrees Engineering
6
6
  Author-email: engineering@51degrees.com
@@ -118,6 +118,7 @@ src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/exceptionsc.c
118
118
  src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/fiftyone.h
119
119
  src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/file.c
120
120
  src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/file.h
121
+ src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/fileOffset.h
121
122
  src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/float.c
122
123
  src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/float.h
123
124
  src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/headers.c
@@ -0,0 +1 @@
1
+ 4.5.0-alpha.30
@@ -1 +0,0 @@
1
- 4.5.0-alpha.28