00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_OBJREG_H__
00020 #define __CS_OBJREG_H__
00021
00022 #include <stdarg.h>
00023 #include <stdio.h>
00024 #include "csutil/scf.h"
00025 #include "iutil/objreg.h"
00026 #include "csutil/csvector.h"
00027
00031 class csObjectRegistry : public iObjectRegistry
00032 {
00033 private:
00034 csVector registry;
00035 csVector tags;
00036
00037 bool clearing;
00038
00039 public:
00040 csObjectRegistry ();
00042 virtual ~csObjectRegistry ();
00043
00044 SCF_DECLARE_IBASE;
00045 virtual void Clear ();
00046 virtual bool Register (iBase* obj, char const* tag = NULL);
00047 virtual void Unregister (iBase* obj, char const* tag = NULL);
00048 virtual iBase* Get (char const* tag);
00049 virtual iBase* Get (char const* tag, scfInterfaceID id, int version);
00050 virtual iObjectRegistryIterator* Get (scfInterfaceID id, int version);
00051 virtual iObjectRegistryIterator* Get ();
00052 };
00053
00054 #endif // __CS_OBJREG_H__
00055