// // Range.h // // Library: Data // Package: DataCore // Module: Range // // Definition of the Range class. // // Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // and Contributors. // // SPDX-License-Identifier: BSL-1.0 // #ifndef Data_Range_INCLUDED #define Data_Range_INCLUDED #include "Poco/Data/Data.h" #include "Poco/Data/Limit.h" namespace Poco { namespace Data { class Data_API Range /// Range stores information how many rows a query should return. { public: Range(Limit::SizeT lowValue, Limit::SizeT upValue, bool hardLimit); /// Creates the Range. lowValue must be smaller equal than upValue ~Range(); /// Destroys the Limit. const Limit& lower() const; /// Returns the lower limit const Limit& upper() const; /// Returns the upper limit private: Limit _lower; Limit _upper; }; // // inlines // inline const Limit& Range::lower() const { return _lower; } inline const Limit& Range::upper() const { return _upper; } namespace Keywords { template Limit limit(T lim, bool hard = false) /// Creates an upperLimit { return Limit(static_cast(lim), hard, false); } template Limit upperLimit(T lim, bool hard = false) { return limit(lim, hard); } template Limit lowerLimit(T lim) { return Limit(static_cast(lim), true, true); } template Range range(T low, T upp, bool hard = false) { return Range(static_cast(low), static_cast(upp), hard); } } // namespace Keywords } } // namespace Poco::Data #endif // Data_Range_INCLUDED