00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef FACTORYPARAMS_H
00016 #define FACTORYPARAMS_H
00017
00018 #include "pandabase.h"
00019
00020 #include "typedObject.h"
00021 #include "typedReferenceCount.h"
00022 #include "pointerTo.h"
00023 #include "factoryParam.h"
00024 #include "dcast.h"
00025
00026 #include "pvector.h"
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 class EXPCL_PANDA_PUTIL FactoryParams {
00041 public:
00042 FactoryParams();
00043 ~FactoryParams();
00044
00045 void add_param(FactoryParam *param);
00046 void clear();
00047
00048 int get_num_params() const;
00049 FactoryParam *get_param(int n) const;
00050
00051 FactoryParam *get_param_of_type(TypeHandle type) const;
00052
00053 private:
00054 typedef pvector< PT(TypedReferenceCount) > Params;
00055
00056 Params _params;
00057 };
00058
00059 template<class ParamType>
00060 INLINE bool get_param_into(ParamType *&pointer, const FactoryParams ¶ms);
00061
00062 #include "factoryParams.I"
00063
00064 #endif