coherence/util/aggregator/AbstractFloat64Aggregator.hpp

00001 /*
00002 * AbstractFloat64Aggregator.hpp
00003 *
00004 * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
00005 *
00006 * Oracle is a registered trademarks of Oracle Corporation and/or its
00007 * affiliates.
00008 *
00009 * This software is the confidential and proprietary information of Oracle
00010 * Corporation. You shall not disclose such confidential and proprietary
00011 * information and shall use it only in accordance with the terms of the
00012 * license agreement you entered into with Oracle.
00013 *
00014 * This notice may not be removed or altered.
00015 */
00016 #ifndef COH_ABSTRACT_FLOAT64_AGGREGATOR_HPP
00017 #define COH_ABSTRACT_FLOAT64_AGGREGATOR_HPP
00018 
00019 #include "coherence/lang.ns"
00020 
00021 #include "coherence/util/aggregator/AbstractAggregator.hpp"
00022 #include "coherence/util/ValueExtractor.hpp"
00023 
00024 COH_OPEN_NAMESPACE3(coherence,util,aggregator)
00025 
00026 
00027 /**
00028 * Abstract aggregator that processes numeric values extracted from a set of
00029 * entries in a Map. All the extracted Number objects will be treated as
00030 * <tt>float64_t</tt> values and the result of the aggregator is a Float64.
00031 * If the set of entries is empty, a <tt>NULL</tt> result is returned.
00032 *
00033 * @author djl  2008.05.09
00034 */
00035 class COH_EXPORT AbstractFloat64Aggregator
00036     : public abstract_spec<AbstractFloat64Aggregator,
00037         extends<AbstractAggregator> >
00038     {
00039     // ----- constructors ---------------------------------------------------
00040 
00041     protected:
00042         /**
00043         * @internal
00044         */
00045         AbstractFloat64Aggregator();
00046 
00047         /**
00048         * @internal
00049         */
00050         AbstractFloat64Aggregator(ValueExtractor::View vExtractor);
00051 
00052 
00053     // ----- AbstractAggregator Interface  ----------------------------------
00054 
00055     protected:
00056         /**
00057         * {@inheritDoc}
00058         */
00059         virtual void init(bool fFinal);
00060 
00061         /**
00062         * {@inheritDoc}
00063         */
00064         virtual Object::Holder finalizeResult(bool fFinal);
00065 
00066 
00067     // ----- data members ---------------------------------------------------
00068 
00069     protected:
00070         /**
00071         * The count of processed entries.
00072         */
00073         int32_t m_count;
00074 
00075         /**
00076         * The running result value.
00077         */
00078         float64_t m_dflResult;
00079     };
00080 
00081 COH_CLOSE_NAMESPACE3
00082 
00083 #endif // COH_ABSTRACT_FLOAT64_AGGREGATOR_HPP
Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.