| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

OnXSvc::KeyedType< Object > Class Template Reference

#include <KeyedType.h>

Collaboration diagram for OnXSvc::KeyedType< Object >:

[legend]
List of all members.

Public Member Functions

virtual void * cast (const std::string &aClass) const
virtual std::string name () const
virtual Lib::IIterator * iterator ()
virtual void setIterator (Lib::IIterator *aIterator)
virtual void beginVisualize ()
virtual void endVisualize ()
 KeyedType (const CLID &aCLID, const std::string &aType, const std::string &aLocation, IUserInterfaceSvc *aUISvc, ISoConversionSvc *aSoCnvSvc, IDataProviderSvc *aDataProviderSvc)
virtual ~KeyedType ()
void setLocation (const std::string &aLocation)
const std::string & location () const

Protected Member Functions

bool setLocationFromSession (bool verbose=true)
bool attribute (const std::string &aWhat, std::string &aValue) const
bool attribute (const std::string &aWhat, float &aR, float &aG, float &aB) const
bool modelingSolid () const

Protected Attributes

SoRegion * fSoRegion
IUserInterfaceSvcfUISvc
ISoConversionSvcfSoCnvSvc
IDataProviderSvcfDataProviderSvc

Private Types

typedef KeyedContainer< Object,
Containers::HashMap
Collection

Private Attributes

const CLIDfCLID
std::string fType
std::string fLocation
Lib::IIterator * fIterator
IConverterfConverter

Detailed Description

template<class Object>
class OnXSvc::KeyedType< Object >

Definition at line 53 of file KeyedType.h.


Member Typedef Documentation

template<class Object>
typedef KeyedContainer< Object, Containers::HashMap> OnXSvc::KeyedType< Object >::Collection [private]

Definition at line 55 of file KeyedType.h.


Constructor & Destructor Documentation

template<class Object>
OnXSvc::KeyedType< Object >::KeyedType ( const CLID aCLID,
const std::string &  aType,
const std::string &  aLocation,
IUserInterfaceSvc aUISvc,
ISoConversionSvc aSoCnvSvc,
IDataProviderSvc aDataProviderSvc 
) [inline]

Definition at line 151 of file KeyedType.h.

00157     :OnX::BaseType(aUISvc->printer())
00158     ,fCLID(aCLID)
00159     ,fType(aType)
00160     ,fLocation(aLocation)
00161     ,fIterator(0)
00162     ,fConverter(0)
00163     //,fCollection(0)
00164     ,fSoRegion(0)
00165     ,fUISvc(aUISvc)
00166     ,fSoCnvSvc(aSoCnvSvc)
00167     ,fDataProviderSvc(aDataProviderSvc){
00168 
00169     if(!fUISvc) {
00170       Lib::Out out(printer());
00171       out << "OnXSvc::KeyedType<> :"
00172           << " can't get a IUserInterfaceSvc."
00173           << Lib::endl;
00174     }
00175 
00176     //fCollection = new Collection();
00177   }

template<class Object>
virtual OnXSvc::KeyedType< Object >::~KeyedType (  )  [inline, virtual]

Definition at line 178 of file KeyedType.h.

00178                        {
00179     //delete fCollection;
00180   }


Member Function Documentation

template<class Object>
virtual void* OnXSvc::KeyedType< Object >::cast ( const std::string &  aClass  )  const [inline, virtual]

Definition at line 57 of file KeyedType.h.

00057                                                     {
00058     //FIXME : needed with g++-3.23 so that 
00059     //        the virtuality over the safe cast works !
00060     if(aClass=="Slash::Data::IVisualizer") {
00061       return (void*)static_cast<const Slash::Data::IVisualizer*>(this);
00062     } else {
00063       return OnX::BaseType::cast(aClass);
00064     }
00065   }

template<class Object>
virtual std::string OnXSvc::KeyedType< Object >::name (  )  const [inline, virtual]

Definition at line 66 of file KeyedType.h.

00066 {  return fType;}

template<class Object>
virtual Lib::IIterator* OnXSvc::KeyedType< Object >::iterator (  )  [inline, virtual]

Definition at line 67 of file KeyedType.h.

00067                                    {
00068     if(fIterator) return fIterator;
00069     if(!fDataProviderSvc) {
00070       Lib::Out out(printer());
00071       out << "OnXSvc::KeyedType<>::iterator :"
00072           << " no data provider found."
00073           << Lib::endl;
00074       return new KeyedIterator< Object >();
00075     }
00076     SmartDataPtr<DataObject> smartDataObject(fDataProviderSvc,fLocation);
00077     if(smartDataObject) {}
00078     DataObject* dataObject = 0;
00079     StatusCode sc = fDataProviderSvc->retrieveObject(fLocation, dataObject);
00080     if(!sc.isSuccess()) {
00081       Lib::Out out(printer());
00082       out << "OnXSvc::KeyedType<>::iterator :"
00083           << " retreiveObject failed."
00084           << Lib::endl;
00085       return new KeyedIterator< Object >();
00086     }
00087     Collection* collection = dynamic_cast<Collection*>(dataObject);
00088     if(!collection) {
00089       Lib::Out out(printer());
00090       out << "OnXSvc::KeyedType<>::iterator :"
00091           << " dynamic_cast failed."
00092           << Lib::endl;
00093       return new KeyedIterator< Object >();
00094     }
00095     return new KeyedIterator< Object >(collection);
00096   }

template<class Object>
virtual void OnXSvc::KeyedType< Object >::setIterator ( Lib::IIterator *  aIterator  )  [inline, virtual]

Definition at line 97 of file KeyedType.h.

00097 { fIterator = aIterator;}

template<class Object>
virtual void OnXSvc::KeyedType< Object >::beginVisualize (  )  [inline, virtual]

Definition at line 99 of file KeyedType.h.

00099                                 {
00100     if(!fUISvc) {
00101       fSoRegion = 0;
00102       return;
00103     }
00104     ISession* session = fUISvc->session();
00105     if(!session) {
00106       Lib::Out out(printer());
00107       out << "OnXSvc::KeyedType<>::beginVisualize :"
00108           << " can't get a ISession."
00109           << Lib::endl;
00110       fSoRegion = 0;
00111       return;
00112     }
00113     fSoRegion = fUISvc->currentSoRegion();
00114   }

template<class Object>
virtual void OnXSvc::KeyedType< Object >::endVisualize (  )  [inline, virtual]

Definition at line 115 of file KeyedType.h.

00115                               {
00116     fSoRegion = 0;
00117   }

template<class Object>
void OnXSvc::KeyedType< Object >::setLocation ( const std::string &  aLocation  )  [inline]

Definition at line 181 of file KeyedType.h.

00181 { fLocation = aLocation;}

template<class Object>
const std::string& OnXSvc::KeyedType< Object >::location (  )  const [inline]

Definition at line 182 of file KeyedType.h.

00182 { return fLocation;}

template<class Object>
bool OnXSvc::KeyedType< Object >::setLocationFromSession ( bool  verbose = true  )  [inline, protected]

Definition at line 184 of file KeyedType.h.

00184                                                    {
00185     if(!fUISvc) return false;
00186     ISession* session = fUISvc->session();
00187     if(!session) return false;
00188     std::string value;
00189     if(!session->parameterValue(fType+".location",value)) {
00190       if(verbose) {
00191         Lib::Out out(printer());
00192         out << "OnXSvc::KeyedType<" << fType << ">::setLocationFromSession :"
00193             << " Session parameter " << fType << ".location not found."
00194             << Lib::endl;
00195       }
00196       return false;
00197     }
00198     if(value=="") {
00199       if(verbose) {
00200         Lib::Out out(printer());
00201         out << "OnXSvc::KeyedType<" << fType << ">::setLocationFromSession :"
00202             << " Session parameter " << fType << ".location empty."
00203             << Lib::endl;
00204       }
00205       return false;
00206     }
00207     if(verbose) {
00208       Lib::Out out(printer());
00209       out << "OnXSvc::KeyedType<" << fType << ">::setLocationFromSession :"
00210           << " set location \"" << value << "\""
00211           << Lib::endl;
00212     }
00213     setLocation(value);
00214     return true;
00215   }

template<class Object>
bool OnXSvc::KeyedType< Object >::attribute ( const std::string &  aWhat,
std::string &  aValue 
) const [inline, protected]

Definition at line 216 of file KeyedType.h.

00216                                                                  {
00217     aValue = "";
00218     if(!fUISvc) return false;
00219     ISession* session = fUISvc->session();
00220     if(!session) return false;
00221     return session->parameterValue(aWhat,aValue);
00222   }

template<class Object>
bool OnXSvc::KeyedType< Object >::attribute ( const std::string &  aWhat,
float &  aR,
float &  aG,
float &  aB 
) const [inline, protected]

Definition at line 223 of file KeyedType.h.

00223                                                                              {
00224     aR = 0.5F;
00225     aG = 0.5F;
00226     aB = 0.5F;
00227     if(!fUISvc) return false;
00228     ISession* session = fUISvc->session();
00229     if(!session) return false;
00230     std::string value;
00231     if(!session->parameterValue(aWhat,value)) return false;
00232     double r,g,b;
00233     if(!Lib::smanip::torgb(value,r,g,b)) return false;
00234     aR = (float)r;
00235     aG = (float)g;
00236     aB = (float)b;
00237     return true;
00238   }

template<class Object>
bool OnXSvc::KeyedType< Object >::modelingSolid (  )  const [inline, protected]

Definition at line 239 of file KeyedType.h.

00239                              {
00240     if(!fUISvc) return true;
00241     ISession* session = fUISvc->session();
00242     if(!session) return true;
00243     std::string value;
00244     if(!session->parameterValue("modeling.modeling",value)) return true;
00245     return (value=="solid" ? true : false); 
00246   }


Member Data Documentation

template<class Object>
const CLID& OnXSvc::KeyedType< Object >::fCLID [private]

Definition at line 248 of file KeyedType.h.

template<class Object>
std::string OnXSvc::KeyedType< Object >::fType [private]

Definition at line 249 of file KeyedType.h.

template<class Object>
std::string OnXSvc::KeyedType< Object >::fLocation [private]

Definition at line 250 of file KeyedType.h.

template<class Object>
Lib::IIterator* OnXSvc::KeyedType< Object >::fIterator [private]

Definition at line 251 of file KeyedType.h.

template<class Object>
IConverter* OnXSvc::KeyedType< Object >::fConverter [private]

Definition at line 252 of file KeyedType.h.

template<class Object>
SoRegion* OnXSvc::KeyedType< Object >::fSoRegion [protected]

Definition at line 255 of file KeyedType.h.

template<class Object>
IUserInterfaceSvc* OnXSvc::KeyedType< Object >::fUISvc [protected]

Definition at line 256 of file KeyedType.h.

template<class Object>
ISoConversionSvc* OnXSvc::KeyedType< Object >::fSoCnvSvc [protected]

Definition at line 257 of file KeyedType.h.

template<class Object>
IDataProviderSvc* OnXSvc::KeyedType< Object >::fDataProviderSvc [protected]

Definition at line 258 of file KeyedType.h.


The documentation for this class was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:02:02 2011 for OnXSvc by doxygen 1.4.7