FishSlice.hpp

00001 #ifndef __FISH_BONE_FISHSLICE_HPP
00002 #define __FISH_BONE_FISHSLICE_HPP
00003 
00004 #include "fishboneDllApi.h"
00005 
00006 #include <ocean/plankton/VObject.hpp>
00007 #include <ocean/plankton/VTime.hpp>
00008 #include <ocean/shrimp/TimeDependent.hpp>
00009 
00010 #include <bundle/Slice.hpp>
00011 #include <bundle/GridSelector.hpp>
00012 #include "Fish.hpp"
00013 
00014 namespace Wizt
00015 {
00016         using std::pair;
00017 
00022 template <>
00023 class   fishbone_API Fish<Fiber::Slice> : public virtual Fish<double>, public TimeDependent
00024 {
00025 public:
00027         Fish<Fiber::Slice>(const string&time = "time", const string&timescale = "timescale");
00028 
00030         ~Fish();
00031 
00033         override double getTime(const RefPtr<ValuePool>&VP, const RefPtr<Fiber::Bundle>&SpaceTime) const; 
00034 
00035         Fiber::Bundle::GridInfo_t
00036                 findRecentGrid(Fiber::GridSelector&GS, const RefPtr<ValuePool>&VP) const
00037         {
00038                 return GS.findMostRecentGrid( getTime(VP, GS.BundleSource() ) );
00039         }
00040 };
00041 
00042 
00043 } // namespace Wizt
00044 
00045 #endif /* __FISH_BONE_FISHSLICE_HPP */
00046