//Copyright 2020 Siemens Digital Industries Software
//==================================================
//Copyright $2020.
//Siemens Product Lifecycle Management Software Inc.
//All Rights Reserved.
//==================================================
//Copyright 2020 Siemens Digital Industries Software

/*==================================================================================================
File description:
    This file contains the declaration for the Business Object, Smd0ModelDelegate
    Filename:   Smd0ModelDelegate.hxx
    Module:     Smd0sysmodeling
    @BMIDE autogenerated
==================================================================================================*/

#ifndef SMD0SYSTEMMODELING__SMD0MODELDELEGATE_HXX
#define SMD0SYSTEMMODELING__SMD0MODELDELEGATE_HXX

#include <common/tc_deprecation_macros.h>
#include <Smd0sysmodeling/Smd0Model.hxx>

#include <Smd0sysmodeling/libsmd0sysmodeling_exports.h>

namespace smd0systemmodeling
{
    class Smd0ModelDelegate;
}
namespace smd0systemmodeling
{
    class Smd0ModelImpl;
}
namespace smd0systemmodeling
{
    class Smd0Model;
}
namespace smd0systemmodeling
{
    class Smd0ModelGenImpl;
}

namespace smd0systemmodeling_alias = ::smd0systemmodeling;


class  SMD0SYSMODELING_API smd0systemmodeling_alias::Smd0ModelDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

    //  Method to get the Smd0ModelDelegate instance
    static Smd0ModelDelegate&  getInstance();

    //  Method to create the Smd0ModelImpl pointer
    static Smd0ModelImpl*  createImpl( Smd0Model&  ifObj );

    //  Method to delete the Smd0ModelImpl pointer
    static void deleteImpl( Smd0ModelImpl*  impl );



protected:
    //  Pointer to the instance
    static Smd0ModelDelegate*  m_pInstance;

    Smd0ModelDelegate();
    virtual ~Smd0ModelDelegate();
    static void setInstance( Smd0ModelDelegate*  instance );


private:
    friend class  ::smd0systemmodeling::Smd0ModelGenImpl;

};

#include <Smd0sysmodeling/libsmd0sysmodeling_undef.h>
#endif  //  SMD0SYSTEMMODELING__SMD0MODELDELEGATE_HXX
