📄 hxengin.h
字号:
STDMETHOD(GetHostByNameDone) (THIS_
HX_RESULT status,
ULONG32 ulAddr) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXInterruptSafe
*
* Purpose:
*
* This interface is used in Macintosh implementations of callback
* functions, renderers, etc... to determine if interrupt time execution
* is supported. If this interface is not implemented then it is assumed
* that interrupt time execution is NOT supported. There are restrictions
* on what may be executed at interrupt time; please consult the Macintosh
* Deferred Task Manager tech notes from Apple.
*
* IID_IHXInterruptSafe:
*
* {0000010B-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXInterruptSafe, 0x0000010B, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXInterruptSafe
DECLARE_INTERFACE_(IHXInterruptSafe, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXInterruptSafe methods
*/
/************************************************************************
* Method:
* IHXInterruptSafe::IsInterruptSafe
* Purpose:
* This is the function that will be called to determine if
* interrupt time execution is supported.
*/
STDMETHOD_(BOOL,IsInterruptSafe) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAsyncIOSelection
*
* Purpose:
*
* This interface is implemented by the server/player context on Unix
* platforms. This interface allows your plugin to get callbacks based
* I/O events that are normally handled by select(). This interface
* allows you to setup callbacks which will be executed when a file
* descriptor is ready for reading, writing, or has an exception.
*
* IID_IHXAsyncIOSelection:
*
* {0000010C-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAsyncIOSelection, 0x0000010C, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAsyncIOSelection
DECLARE_INTERFACE_(IHXAsyncIOSelection, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAsyncIOSelection methods
*/
/************************************************************************
* Method:
* IHXAsyncIOSelection::Add
* Purpose:
* This function will allow you to receive a callback when the
* given descriptor is ready for read, write, or has an
* exception. This function is only available on Unix, and is
* intended to replace the functionality of select().
*/
STDMETHOD(Add) (THIS_
IHXCallback* pCallback,
INT32 lFileDescriptor,
UINT32 ulType) PURE;
/************************************************************************
* Method:
* IHXAsyncIOSelection::Remove
* Purpose:
* This function will allow you remove the callback associated
* with the given descriptor from the event handler.
* This function is only available on Unix, and is intended to
* replace the functionality of select().
*/
STDMETHOD(Remove) (THIS_
INT32 lFileDescriptor,
UINT32 ulType) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXUDPMulticastInit
*
* Purpose:
*
* Provides the user with a way to set the TTL for outgoing multicast
* UDP packets. Usually shared with IHXUDPSocket.
*
* IID_IHXUDPMulticastInit:
*
* {0000010D-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXUDPMulticastInit, 0x0000010D, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXUDPMulticastInit
DECLARE_INTERFACE_(IHXUDPMulticastInit, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXUDPMulticastInit methods
*
*/
/************************************************************************
* Method:
* IHXUDPMulticastInit::InitMulticast
* Purpose:
* This function will set the TTL (time to live) for the UDP socket
* so it can be used as a multicast socket, sending packets across
* the number of routers specified in the ulTTL parameter.
*/
STDMETHOD(InitMulticast) (THIS_
UINT8 chTTL) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXInterruptState
*
* Purpose:
*
* This interface is used in Macintosh implementations to inform the
* the client engine when entering & leaving an interupt task. It is
* also used to determine if it is currently at interrupt time.
* Please consult the Macintosh Deferred Task Manager tech notes from Apple
* for information on interrupt tasks.
*
* IID_IHXInterruptState:
*
* {0000010E-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXInterruptState, 0x0000010E, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXInterruptState
DECLARE_INTERFACE_(IHXInterruptState, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXInterruptState methods
*/
/************************************************************************
* Method:
* IHXInterruptState::AtInterruptTime
* Purpose:
* This function is called to determine if we are currently at
* interrupt task time.
*/
STDMETHOD_(BOOL,AtInterruptTime) (THIS) PURE;
/************************************************************************
* Method:
* IHXInterruptState::EnterInterruptState
* Purpose:
* This function is called when starting a deferred/interrupt task
*/
STDMETHOD(EnterInterruptState) (THIS) PURE;
/************************************************************************
* Method:
* IHXInterruptState::LeaveInterruptState
* Purpose:
* This function is called when leaving a deferred/interrupt task
*/
STDMETHOD(LeaveInterruptState) (THIS) PURE;
/************************************************************************
* Method:
* IHXInterruptState::EnableInterrupt
* Purpose:
* This function can be called to enable/disable interrupt time
* processsing
*/
STDMETHOD(EnableInterrupt) (THIS_
BOOL bEnable) PURE;
/************************************************************************
* Method:
* IHXInterruptState::IsInterruptEnabled
* Purpose:
* This function can be called to find if the core is currently
* interrupt enabled.
*/
STDMETHOD_(BOOL, IsInterruptEnabled) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXOptimizedScheduler
*
* Purpose:
*
* This interface provides the user with a way of scheduling callbacks
* that will be executed at some time in the future.
*
* This interface should ONLY be used if you need accurately timed
* callbacks. These callbacks should be efficient and should not consume
* much time/CPU. This is not a thread safe interface. The user has to
* take care of synchronization in their callbacks.
*
* IID_IHXOptimizedScheduler:
*
* {0000010F-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXOptimizedScheduler, 0x0000010F, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXOptimizedScheduler
DECLARE_INTERFACE_(IHXOptimizedScheduler, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXOptimizedScheduler methods
*/
/************************************************************************
* Method:
* IHXOptimizedScheduler::RelativeEnter
* Purpose:
* Schedule a callback to be executed "ms" milliseconds from now
* This function is less percise then AbsoluteEnter and should only
* be used when accurate timing is not critical.
*/
STDMETHOD_(CallbackHandle,RelativeEnter) (THIS_
IHXCallback* pCallback,
UINT32 ms) PURE;
/************************************************************************
* Method:
* IHXOptimizedScheduler::AbsoluteEnter
* Purpose:
* Schedule a callback to be executed at time "tVal".
*/
STDMETHOD_(CallbackHandle,AbsoluteEnter) (THIS_
IHXCallback* pCallback,
HXTimeval tVal) PURE;
/************************************************************************
* Method:
* IHXOptimizedScheduler::Remove
* Purpose:
* Remove a callback from the scheduler.
*/
STDMETHOD(Remove) (THIS_
CallbackHandle Handle) PURE;
/************************************************************************
* Method:
* IHXOptimizedScheduler::GetCurrentSchedulerTime
* Purpose:
* Gives the current time (in the timeline of the scheduler).
*/
STDMETHOD_(HXTimeval,GetCurrentSchedulerTime) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXThreadSafeScheduler
*
* Purpose:
*
* This interface provides the user with a way of scheduling callbacks
* that will be executed at some time in the future. This is identical
* to IHXScheduler except the scheduler events are considered thread-safe.
*
* IID_IHXThreadSafeScheduler:
*
* {00000120-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXThreadSafeScheduler, 0x00000120, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXThreadSafeScheduler
DECLARE_INTERFACE_(IHXThreadSafeScheduler, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXThreadSafeScheduler methods
*/
/************************************************************************
* Method:
* IHXThreadSafeScheduler::RelativeEnter
* Purpose:
* Schedule a callback to be executed "ms" milliseconds from now
* This function is less percise then AbsoluteEnter and should only
* be used when accurate timing is not critical.
*/
STDMETHOD_(CallbackHandle,RelativeEnter) (THIS_
IHXCallback* pCallback,
UINT32 ms) PURE;
/************************************************************************
* Method:
* IHXThreadSafeScheduler::AbsoluteEnter
* Purpose:
* Schedule a callback to be executed at time "tVal".
*/
STDMETHOD_(CallbackHandle,AbsoluteEnter) (THIS_
IHXCallback* pCallback,
HXTimeval tVal) PURE;
/************************************************************************
* Method:
* IHXThreadSafeScheduler::Remove
* Purpose:
* Remove a callback from the scheduler.
*/
STDMETHOD(Remove) (THIS_
CallbackHandle Handle) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXProcessEntryPoint
*
* Purpose:
*
* This interface is the entry point for an IHXProcess
*
* IID_IHXProcessEntryPoint
*
* {00000123-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXProcessEntryPoint, 0x00000123, 0x901, 0x11d1, 0x8b, 0x6,
0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXProcessEntryPoint
DECLARE_INTERFACE_(IHXProcessEntryPoint, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
STDMETHOD(Func) (THIS_
IUnknown* pContext) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXProcess
*
* Purpose:
*
* This interface allows you to create new server processes and specify
* an entry point. It is queried off the context.
*
* IID_IHXProcess
*
* {00000122-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXProcess, 0x00000122, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXProcess
DECLARE_INTERFACE_(IHXProcess, IUnknown)
{
/*
* IUnknown methods
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -