Oracle Coherence for C++ API
Release 3.7.1.0
E22845-01
00001 /* 00002 * Count.hpp 00003 * 00004 * Copyright (c) 2000, 2011, 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_COUNT_HPP 00017 #define COH_COUNT_HPP 00018 00019 #include "coherence/lang.ns" 00020 00021 #include "coherence/io/pof/PofReader.hpp" 00022 #include "coherence/io/pof/PofWriter.hpp" 00023 #include "coherence/io/pof/PortableObject.hpp" 00024 #include "coherence/util/InvocableMap.hpp" 00025 00026 COH_OPEN_NAMESPACE3(coherence,util,aggregator) 00027 00028 using coherence::io::pof::PofReader; 00029 using coherence::io::pof::PofWriter; 00030 using coherence::io::pof::PortableObject; 00031 00032 00033 /** 00034 * Calculates a number of values in an entry set. 00035 * 00036 * @author djl 2008.05.12 00037 */ 00038 class COH_EXPORT Count 00039 : public class_spec<Count, 00040 extends<Object>, 00041 implements<PortableObject, InvocableMap::ParallelAwareAggregator> > 00042 { 00043 friend class factory<Count>; 00044 00045 // ----- constructors --------------------------------------------------- 00046 00047 protected: 00048 /** 00049 * Default constructor (necessary for the PortableObject interface). 00050 */ 00051 Count(); 00052 00053 00054 // ----- EntryAggregator interface -------------------------------------- 00055 00056 public: 00057 /** 00058 * {@inheritDoc} 00059 */ 00060 virtual Object::Holder aggregate(Set::View vSetEntries); 00061 00062 00063 // ----- ParallelAwareAggregator interface ------------------------------ 00064 00065 /** 00066 * {@inheritDoc} 00067 */ 00068 virtual InvocableMap::EntryAggregator::Handle getParallelAggregator(); 00069 00070 /** 00071 * {@inheritDoc} 00072 */ 00073 virtual Object::Holder aggregateResults( 00074 Collection::View vCollResults); 00075 00076 00077 // ----- PortableObject interface --------------------------------------- 00078 00079 public: 00080 /** 00081 * {@inheritDoc} 00082 */ 00083 virtual void readExternal(PofReader::Handle hIn); 00084 00085 /** 00086 * {@inheritDoc} 00087 */ 00088 virtual void writeExternal(PofWriter::Handle hOut) const; 00089 }; 00090 00091 COH_CLOSE_NAMESPACE3 00092 00093 #endif // COH_COUNT_HPP