public static void RegisterFactory(SocketOpenDelegate doOpen, SocketRequestCloseDelegateManaged doRequestClose, SocketWriteDelegateManaged doWrite, SocketCompletedReceiveDelegateManaged doCompleteReceive, SocketDisposeDelegate doDispose) { _externalOpen = doOpen; _externalRequestClose = doRequestClose; _externalWrite = doWrite; _externalCompletedReceive = doCompleteReceive; _externalDispose = doDispose; }
static SocketFactory() { _open = SocketOpened; _close = SocketClose; _write = SocketWrittenTo; _completedReceive = SocketCompletedReceive; _dispose = SocketDispose; InternalFactory = new C4SocketFactory(_open, _close, _write, _completedReceive, _dispose); Native.c4socket_registerFactory(InternalFactory); }
public C4SocketFactory(SocketOpenDelegate open, SocketCloseDelegate close, SocketWriteDelegate write, SocketCompletedReceiveDelegate completedReceive, SocketDisposeDelegate dispose) { this.open = Marshal.GetFunctionPointerForDelegate(open); this.write = Marshal.GetFunctionPointerForDelegate(write); this.completedReceive = Marshal.GetFunctionPointerForDelegate(completedReceive); this.close = Marshal.GetFunctionPointerForDelegate(close); this.requestClose = IntPtr.Zero; this.providesWebSockets = 0; this.dispose = Marshal.GetFunctionPointerForDelegate(dispose); }
static SocketFactory() { _open = SocketOpened; _close = SocketClose; _requestClose = SocketRequestClose; _write = SocketWrittenTo; _completedReceive = SocketCompletedReceive; _dispose = SocketDispose; InternalFactory = new C4SocketFactory { framing = C4SocketFraming.WebSocketClientFraming, open = Marshal.GetFunctionPointerForDelegate(_open), close = Marshal.GetFunctionPointerForDelegate(_close), write = Marshal.GetFunctionPointerForDelegate(_write), completedReceive = Marshal.GetFunctionPointerForDelegate(_completedReceive), dispose = Marshal.GetFunctionPointerForDelegate(_dispose) }; Native.c4socket_registerFactory(InternalFactory); }