00001 //------------------------------------------------------------------------- 00002 // 00003 // File: DeviceContextC.h 00004 // Desc: Device context class. 00005 // Author: memon <memon@inside.org> 00006 // 00007 //------------------------------------------------------------------------- 00008 // Copyright (c) 2000-2002 Moppi Productions. All Rights Reserved. 00009 // This file is part of Moppi Demopaja SDK. For conditions of 00010 // distribution and use, see the accompanying license.txt file. 00011 // http://moppi.inside.org/demopaja/ 00012 //------------------------------------------------------------------------- 00013 00014 #ifndef __DEMOPAJA_DEVICECONTEXTC_H__ 00015 #define __DEMOPAJA_DEVICECONTEXTC_H__ 00016 00017 #pragma warning( disable : 4786 ) // long names generated by STL 00018 00019 #include "PajaTypes.h" 00020 #include "DeviceInterfaceI.h" 00021 #include "ClassIdC.h" 00022 #include <vector> 00023 00024 00025 namespace PajaSystem { 00026 00028 00038 class DeviceContextC 00039 { 00040 public: 00042 00043 DeviceContextC(); 00044 00046 00047 virtual ~DeviceContextC(); 00048 00050 00077 virtual DeviceInterfaceI* query_interface( const PluginClass::ClassIdC& rClassId ); 00078 00080 00089 virtual DeviceInterfaceI* query_interface( const PluginClass::SuperClassIdC& rSClassId ); 00090 00092 00093 virtual void register_interface( DeviceInterfaceI* pInterface ); 00094 00096 00097 virtual void unregister_interface( const PluginClass::ClassIdC& rClassId ); 00098 00100 virtual PajaTypes::uint32 get_interface_count() const; 00101 00103 virtual DeviceInterfaceI* get_interface( PajaTypes::uint32 ui32Index ); 00104 00105 private: 00106 std::vector<DeviceInterfaceI*> m_rInterfaces; 00107 }; 00108 00109 }; // namespace 00110 00111 #endif // __DEMOPAJA_DEVICECONTEXTC_H__