//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, Ssm0SimDictionaryDelegate
    Filename:   Ssm0SimDictionaryDelegate.hxx
    Module:     Ssm0systemsynthesismodeling
    @BMIDE autogenerated
==================================================================================================*/

#ifndef SSM0SYSTEMSYNTHESISMODELING__SSM0SIMDICTIONARYDELEGATE_HXX
#define SSM0SYSTEMSYNTHESISMODELING__SSM0SIMDICTIONARYDELEGATE_HXX

#include <common/tc_deprecation_macros.h>
#include <Ssm0systemsynthesismodeling/Ssm0SimDictionary.hxx>

#include <Ssm0systemsynthesismodeling/libssm0systemsynthesismodeling_exports.h>

namespace ssm0systemsynthesismodeling
{
    class Ssm0SimDictionaryDelegate;
}
namespace ssm0systemsynthesismodeling
{
    class Ssm0SimDictionaryImpl;
}
namespace ssm0systemsynthesismodeling
{
    class Ssm0SimDictionary;
}
namespace ssm0systemsynthesismodeling
{
    class Ssm0SimDictionaryGenImpl;
}

namespace ssm0systemsynthesismodeling_alias = ::ssm0systemsynthesismodeling;


class  SSM0SYSTEMSYNTHESISMODELING_API ssm0systemsynthesismodeling_alias::Ssm0SimDictionaryDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

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

    //  Method to create the Ssm0SimDictionaryImpl pointer
    static Ssm0SimDictionaryImpl*  createImpl( Ssm0SimDictionary&  ifObj );

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



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

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


private:
    friend class  ::ssm0systemsynthesismodeling::Ssm0SimDictionaryGenImpl;

};

#include <Ssm0systemsynthesismodeling/libssm0systemsynthesismodeling_undef.h>
#endif  //  SSM0SYSTEMSYNTHESISMODELING__SSM0SIMDICTIONARYDELEGATE_HXX
