00001
00002
00003
00004
00005
00006
00007 #ifndef COH_ABSTRACT_PROCESSOR_HPP
00008 #define COH_ABSTRACT_PROCESSOR_HPP
00009
00010 #include "coherence/lang.ns"
00011
00012 #include "coherence/util/Describable.hpp"
00013 #include "coherence/util/InvocableMap.hpp"
00014 #include "coherence/util/Map.hpp"
00015 #include "coherence/util/Set.hpp"
00016
00017 COH_OPEN_NAMESPACE3(coherence,util, processor)
00018
00019 using coherence::util::InvocableMap;
00020 using coherence::util::Map;
00021 using coherence::util::Set;
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 class COH_EXPORT AbstractProcessor
00035 : public abstract_spec<AbstractProcessor,
00036 extends<Describable>,
00037 implements<InvocableMap::EntryProcessor> >
00038 {
00039
00040
00041 public:
00042
00043
00044
00045
00046
00047
00048
00049 virtual Object::Holder process(InvocableMap::Entry::Handle hEntry) const;
00050
00051 public:
00052
00053
00054
00055 virtual Map::View processAll(Set::View vSetEntries) const;
00056 };
00057
00058 COH_CLOSE_NAMESPACE3
00059
00060 #endif // COH_ABSTRACT_PROCESSOR_HPP