00001 #ifndef IOKERNEL__SYNCHRONIZER_H 00002 #define IOKERNEL__SYNCHRONIZER_H 00003 00004 #include "iokernel_forwarders.h" 00005 #include "clone_stream.h" 00006 00007 class Synchronizer : public CloneStream { 00008 public: 00009 Synchronizer(ObjectFactory *factory); 00010 virtual ~Synchronizer(); 00011 00012 virtual void synchronize( ObjectFactory* system_factory, 00013 ObjectFactory* new_object_factory, 00014 InputStream* input_stream ); 00015 00016 virtual ObjectFactory* get_object_factory() const; 00017 MetaClass * get_replacement(Object *) const; 00018 virtual void object_enquiry(Object *,CloneStreamObjectInstance *,PTR_TYPE ptr_type); 00019 private: 00020 ObjectFactory* _system_factory; 00021 ObjectFactory* _new_object_factory; 00022 InputStream * _input_stream; 00023 private: 00024 Synchronizer(const Synchronizer&); 00025 Synchronizer &operator=(const Synchronizer&); 00026 }; 00027 00028 00029 00030 00031 #endif