query_param: Move maxEntriesPerPage to Query struct

Putting the maxEntriesPerPage next to the top parameter makes it more
clear about its intention as Ed suggested. Here it is also renamed to
maxTop to illustrate its relationship with top.

Tested:
Build, unit test and Redfish Service Validator passed.

Change-Id: I035eea7e33d78439685a81092a4dd9332cfc501a
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
diff --git a/redfish-core/include/utils/query_param.hpp b/redfish-core/include/utils/query_param.hpp
index 5e9ef13..f51993e 100644
--- a/redfish-core/include/utils/query_param.hpp
+++ b/redfish-core/include/utils/query_param.hpp
@@ -49,7 +49,6 @@
 {
 namespace query_param
 {
-inline constexpr size_t maxEntriesPerPage = 1000;
 
 enum class ExpandType : uint8_t
 {
@@ -178,6 +177,7 @@
     std::optional<size_t> skip = std::nullopt;
 
     // Top
+    static constexpr size_t maxTop = 1000; // Max entries a response contain
     std::optional<size_t> top = std::nullopt;
 
     // Select
@@ -334,7 +334,7 @@
     }
 
     // Range check for sanity.
-    if (query.top > maxEntriesPerPage)
+    if (query.top > Query::maxTop)
     {
         return QueryError::OutOfRange;
     }
@@ -411,8 +411,7 @@
             if (topRet == QueryError::OutOfRange)
             {
                 messages::queryParameterOutOfRange(
-                    res, value, "$top",
-                    "0-" + std::to_string(maxEntriesPerPage));
+                    res, value, "$top", "0-" + std::to_string(Query::maxTop));
                 return std::nullopt;
             }
         }
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 8c062aa..ee3ccfc 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -1170,8 +1170,7 @@
         {
             return;
         }
-        size_t top =
-            delegatedQuery.top.value_or(query_param::maxEntriesPerPage);
+        size_t top = delegatedQuery.top.value_or(query_param::Query::maxTop);
         size_t skip = delegatedQuery.skip.value_or(0);
 
         // Collections don't include the static data added by SubRoute
@@ -1899,8 +1898,7 @@
         }
         // If we weren't provided top and skip limits, use the defaults.
         size_t skip = delegatedQuery.skip.value_or(0);
-        size_t top =
-            delegatedQuery.top.value_or(query_param::maxEntriesPerPage);
+        size_t top = delegatedQuery.top.value_or(query_param::Query::maxTop);
         size_t logCount = 0;
         // This vector only store the entries we want to expose that
         // control by skip and top.
@@ -2200,8 +2198,7 @@
         }
 
         size_t skip = delegatedQuery.skip.value_or(0);
-        size_t top =
-            delegatedQuery.top.value_or(query_param::maxEntriesPerPage);
+        size_t top = delegatedQuery.top.value_or(query_param::Query::maxTop);
 
         // Collections don't include the static data added by SubRoute
         // because it has a duplicate entry for members
@@ -3512,8 +3509,7 @@
         asyncResp->res.jsonValue["Members"] = nlohmann::json::array();
         asyncResp->res.jsonValue["Members@odata.count"] = 0;
         size_t skip = delegatedQuery.skip.value_or(0);
-        size_t top =
-            delegatedQuery.top.value_or(query_param::maxEntriesPerPage);
+        size_t top = delegatedQuery.top.value_or(query_param::Query::maxTop);
         getCurrentBootNumber(asyncResp, skip, top);
         });
 }