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

#ifndef PENETRATIONMGMT__PNM0PENETRATIONDISPATCH_HXX
#define PENETRATIONMGMT__PNM0PENETRATIONDISPATCH_HXX

#include <vector>
#include <PnM0penetration/PnM0Penetration.hxx>
#include <PnM0penetration/PnM0PenetrationDelegate.hxx>
#include <issuemgmtdispatch/IssueReportDispatch.hxx>
#include <penetrationmgmtdispatch/initializepenetrationmgmt.hxx>

#include <penetrationmgmtdispatch/libpenetrationmgmtdispatch_exports.h>

namespace penetrationmgmt
{
    class PnM0PenetrationDispatch;
}
namespace penetrationmgmt
{
    class PnM0PenetrationDelegate;
}
namespace Teamcenter
{
    class BusinessObjectImpl;
}

class  PENETRATIONMGMTDISPATCH_API  penetrationmgmt::PnM0PenetrationDispatch
    : public  penetrationmgmt::PnM0PenetrationDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

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


private:
    //  Pointer to the dispatch instance
    static PnM0PenetrationDispatch*  m_dispatch;

    //  Default Constructor
    PnM0PenetrationDispatch();

    //  Default Destructor
    virtual ~PnM0PenetrationDispatch();

    //  Constructor Method
    static ::Teamcenter::RootObject*  constructor();

    //  Copy Constructor for a PnM0PenetrationDispatch
    PnM0PenetrationDispatch( const PnM0PenetrationDispatch& );

    //  Assignment operator
    PnM0PenetrationDispatch&  operator = ( const PnM0PenetrationDispatch& );

    //  friend
    friend void   ::penetrationmgmt::initializepenetrationmgmtInternal();
    friend void   ::penetrationmgmt::initializepenetrationmgmtExtenders();
    friend class  penetrationmgmt::PnM0PenetrationDelegate;
};

#include <penetrationmgmtdispatch/libpenetrationmgmtdispatch_undef.h>
#endif  //  PENETRATIONMGMT__PNM0PENETRATIONDISPATCH_HXX
