Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members Related Pages

# DeviceInterfaceI.h

    00001 //-------------------------------------------------------------------------
    00002 //
    00003 // File:        DeviceInterfaceI.h
    00004 // Desc:        Device Interface interface.
    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_DEVICEINTERFACEI_H__
    00015 #define __DEMOPAJA_DEVICEINTERFACEI_H__
    00016
    00017 // forward declaration
    00018 //namespace PajaSystem {
    00019 //  class DeviceInterfaceI;
    00020 //};
    00021
    00022 #include "PajaTypes.h"
    00023 #include "ClassIdC.h"
    00024 #include "DataBlockI.h"
    00025 #include "FileIO.h"
    00026
    00027 namespace PajaSystem {
    00028
    00030     enum DeviceStateE {
    00031         DEVICE_STATE_OK,
    00032         DEVICE_STATE_LOST,
    00033         DEVICE_STATE_SHUTTINGDOWN,
    00034     };
    00035
    00037
    00040     class DeviceInterfaceI : public Edit::DataBlockI
    00041     {
    00042     public:
    00043
    00045         virtual PluginClass::SuperClassIdC      get_super_class_id() const = 0;
    00047         virtual PluginClass::ClassIdC           get_class_id() const = 0;
    00049         virtual const char*                     get_class_name() = 0;
    00050
    00052
    00057         virtual bool                            get_exclusive() const;
    00058
    00060         virtual PajaTypes::uint32               get_state() const;
    00062         virtual void                            set_state( PajaTypes::uint32 ui32State );
    00063
    00065         virtual PajaSystem::DeviceInterfaceI*   query_interface( const PluginClass::SuperClassIdC& rSuperClassId );
    00066
    00068         virtual PajaTypes::uint32               save( FileIO::SaveC* pSave ) = 0;
    00070         virtual PajaTypes::uint32               load( FileIO::LoadC* pLoad ) = 0;
    00071
    00072     protected:
    00074         DeviceInterfaceI();
    00076         virtual ~DeviceInterfaceI();
    00077
    00078         PajaTypes::uint32   m_ui32State;
    00079     };
    00080
    00081 }; // namespace
    00082
    00083 #endif // __DEMOPAJA_DEVICEINTERFACEI_H__