00001 #ifndef ZTT_DCS_FEE_ITEM_INFO_HPP
00002 #define ZTT_DCS_FEE_ITEM_INFO_HPP
00003
00004 #include "FeeInfo.hpp"
00005 #include "dim/dis.hxx"
00006 #include "FeeGroupedChannel.hpp"
00007 #include <iostream>
00008 #include <boost/shared_ptr.hpp>
00009
00010 namespace ztt { namespace dcs {
00011
00015 #define FEE_ITEM_NO_LINK -1000.0
00016
00021 #define FEE_ITEM_TIMEOUT 10
00022
00023
00024
00040 class FeeItemInfo : public FeeInfo {
00041 public:
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00065
00066
00067
00068
00081 FeeItemInfo(char* name, float noLink, DimInfoHandler* pHandler)
00082 : mValue(FEE_ITEM_NO_LINK), name(name), mpFedService(),feeGroup(),
00083 FeeInfo(name, noLink, pHandler){};
00084
00088 virtual ~FeeItemInfo() {
00089 mpFedService.reset();
00090 feeGroup.reset();
00091 };
00092
00101 virtual bool retrieveServiceValue();
00102
00108 virtual void initialize();
00109
00115 float& getRefFloatValue();
00116
00122 void setCorrespondingFedService(boost::shared_ptr<DimService> pService);
00123
00124 void setFeeGroupChannel(boost::shared_ptr<FeeGroupedChannel> groupedChannel);
00129 char* name;
00130 private:
00134 float mValue;
00135
00139 boost::shared_ptr<DimService> mpFedService;
00143 boost::shared_ptr<FeeGroupedChannel> feeGroup;
00144
00145
00146 };
00147
00148 inline float& FeeItemInfo::getRefFloatValue() {
00149 return mValue;
00150 }
00151
00152 inline void FeeItemInfo::setCorrespondingFedService(boost::shared_ptr<DimService> pService) {
00153 mpFedService = pService;
00154 }
00155 inline void FeeItemInfo::setFeeGroupChannel(boost::shared_ptr<FeeGroupedChannel> groupedChannel){
00156 feeGroup = groupedChannel;
00157 }
00158
00159 } }
00160
00161 #endif