VGridObject.hpp

00001 #ifndef __VGRIDOBJECT_HPP
00002 #define __VGRIDOBJECT_HPP
00003 
00004 #include <ocean/plankton/VObjectValue.hpp>
00005 #include "VBundleObject.hpp"
00006 
00007 #include <bundle/Bundle.hpp>
00008 
00009 namespace Wizt
00010 {
00011         using namespace Fiber;
00012 
00016 class   FISHOBJECTS_API VGridObject : public VBundleObject
00017 {
00018 public: 
00019         RefPtr<GridID>  GridName;
00020 
00021         typedef RefPtr<VObjectComponentParameter<VGridObject, RefPtr<GridID> > > GridParameter_t;
00022 
00023         RefPtr<VParameter> GridParameter;
00024 
00025         VGridObject(const string&name, int p, const RefPtr<VCreationPreferences>&VP);
00026 
00027         VGridObject(const BundlePtr&Bndl, const RefPtr<GridID>&Gname, int p, const RefPtr<VCreationPreferences>&VP);
00028 
00029         ~VGridObject();
00030 
00031         override bool update(const VRequest&, double precision);
00032 
00033         override bool implements(const type_info&what) const;
00034 
00035         override const RefPtr<VParameter>&getImplementation(const type_info&what, const string&name = "");
00036 };
00037 
00038 
00039 template <> 
00040 class   VValueTrait<RefPtr<GridID> >
00041 {
00042 public:
00043 static  bool setValueFromText(RefPtr<GridID>&i, const string&s)
00044         {
00045                 return false;
00046         }
00047 
00048 static  string Text(const RefPtr<GridID>&n)
00049         {
00050                 return n->Name();
00051         }
00052 
00053 };
00054 
00055 #if 0
00056 
00061 struct  GridValue : public VObjectComponent<VGridObject, RefPtr<Grid> >
00062 {
00063         GridValue(VGridObject*vg)
00064         : VObjectComponent<VGridObject, RefPtr<Grid> >(vg, &VGridObject::CurrentGrid)
00065         {}
00066 
00068         override const type_info&getType() const 
00069         {
00070                 return typeid(Grid);
00071         }
00072 
00074         override bool getValueFrom(const WeakPtr<VValueBase>&V) 
00075         {
00076                 return false;
00077         }
00078 
00080         override bool setValueFromText(const string&s) 
00081         {
00082                 return false;
00083         }
00084 
00088         override string Text() const 
00089         {
00090                 return "";
00091         }
00092 };
00093 #endif
00094 
00095 } // namespace Wizt
00096 
00097 #endif
00098