logplus/Workflow/WFCrystal/Plugin/include/IEventExtension.h

128 lines
2.9 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/*
* @file IEventExtension.h
* @brief
* @date 2011-06-23
*/
#ifndef PAI_FRAME_PLUGIN_IEVENTEXTENSION_H
#define PAI_FRAME_PLUGIN_IEVENTEXTENSION_H
#include "IExtension.h"
#include "Turtle.h"
namespace pai
{
class IService;
}
namespace pai
{
/**
* @class IEventExtension
* @brief
*/
class IEventExtension : public IExtension
{
public:
/**
* @brief
* @param[in] eventTypeID IEventExtension派生类的类名
*/
IEventExtension(const std::string & eventTypeID) :
m_EventTypeID(eventTypeID)
{
}
/**
* @brief ID,ID
* @return ID
*/
virtual std::string GetStringID() const
{
return m_EventTypeID;
}
public:
std::string m_EventTypeID; ///< 事件类型ID
};
/**
* @class IEventListener
* @brief
*/
class IEventListener : public IExtension
{
};
/**
* @class IServiceEventListener
* @brief IService类的注册和注销事件的响应函数接口
*/
class IServiceEventListener : public IEventListener
{
public:
/**
* @brief
* @param[in] pExtension
* @param[in] location
*/
virtual void OnRegistered(IExtension *pExtension, const ILocation & location) = 0;
/**
* @brief
* @param[in] extensionID ID
*/
virtual void OnUnregistered(const std::string & extensionID) = 0;
};
/**
* @class ServiceRegisterEvent
* @brief
*/
class ServiceRegisterEvent : public IEventExtension
{
public:
/**
* @brief
* @param[in] pEventSrc
* @param[in] pRegistered
* @param[in] location
*/
ServiceRegisterEvent(IService *pEventSrc,IExtension *pRegistered, const ILocation & location )
:IEventExtension("ServiceRegisterEvent"),
m_pEventSrc(pEventSrc),
m_pRegistered(pRegistered),
m_pLocation(&location)
{
}
IService *m_pEventSrc; ///< 事件源
IExtension *m_pRegistered; ///< 注册的扩展
const ILocation *m_pLocation; ///< 注册位置
};
/**
* @class ServiceUnregisterEvent
* @brief
*/
class ServiceUnregisterEvent : public IEventExtension
{
public:
/**
* @brief
* @param[in] pEventSrc
* @param[in] unregisteredID ID
*/
ServiceUnregisterEvent(IService *pEventSrc, const std::string & unregisteredID)
:IEventExtension("ServiceUnregisterEvent"),
m_pEventSrc(pEventSrc),
m_UnregisteredID(unregisteredID)
{
}
IService *m_pEventSrc; ///< 事件源
std::string m_UnregisteredID; ///< 注销的扩展ID
};
}
#endif ///< PAI_FRAME_PLUGIN_IEVENTEXTENSION_H