00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CS_NOBJVEC_H__
00021 #define __CS_NOBJVEC_H__
00022
00023 #include "csutil/refarr.h"
00024 #include "iutil/object.h"
00025
00036 template <class T>
00037 class csRefArrayObject : public csRefArray<T>
00038 {
00039 public:
00040 csRefArrayObject (int ilimit = 0, int ithreshold = 0)
00041 : csRefArray<T> (ilimit, ithreshold)
00042 {
00043 }
00044
00045 int GetIndexByName (const char* name) const
00046 {
00047 int i;
00048 for (i = 0 ; i < Length () ; i++)
00049 {
00050 T* o = (*this)[i];
00051 const char* n = o->QueryObject ()->GetName ();
00052 if (n && !strcmp (n, name))
00053 return i;
00054 }
00055 return -1;
00056 }
00057
00058 T* FindByName (const char* name) const
00059 {
00060 int i = GetIndexByName (name);
00061 if (i != -1)
00062 return (*this)[i];
00063 else
00064 return 0;
00065 }
00066 };
00067
00068
00069 #endif // __CS_NOBJVEC_H__