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

#ifndef CIP0CONTROLINSPPLAN__CIP0CONTROLPLANDELEGATE_HXX
#define CIP0CONTROLINSPPLAN__CIP0CONTROLPLANDELEGATE_HXX

#include <common/tc_deprecation_macros.h>
#include <Cip0controlinspplan/Cip0ControlPlan.hxx>

#include <Cip0controlinspplan/libcip0controlinspplan_exports.h>

namespace cip0controlinspplan
{
    class Cip0ControlPlanDelegate;
}
namespace cip0controlinspplan
{
    class Cip0ControlPlanImpl;
}
namespace cip0controlinspplan
{
    class Cip0ControlPlan;
}
namespace cip0controlinspplan
{
    class Cip0ControlPlanGenImpl;
}

namespace cip0controlinspplan_alias = ::cip0controlinspplan;


class  CIP0CONTROLINSPPLAN_API cip0controlinspplan_alias::Cip0ControlPlanDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

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

    //  Method to create the Cip0ControlPlanImpl pointer
    static Cip0ControlPlanImpl*  createImpl( Cip0ControlPlan&  ifObj );

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



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

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


private:
    friend class  ::cip0controlinspplan::Cip0ControlPlanGenImpl;

};

#include <Cip0controlinspplan/libcip0controlinspplan_undef.h>
#endif  //  CIP0CONTROLINSPPLAN__CIP0CONTROLPLANDELEGATE_HXX
