public void onMsg( MamaSubscription subscription, MamaMsg msg) { mamaMsgType msgType = msg.typeForMsg(); mamaMsgStatus msgStatus = msg.getStatus(); switch (msgType) { case mamaMsgType.MAMA_MSG_TYPE_DELETE: case mamaMsgType.MAMA_MSG_TYPE_EXPIRE: subscription.deallocate(); return; } switch (msgStatus) { case mamaMsgStatus.MAMA_MSG_STATUS_BAD_SYMBOL: case mamaMsgStatus.MAMA_MSG_STATUS_EXPIRED: case mamaMsgStatus.MAMA_MSG_STATUS_TIMEOUT: subscription.deallocate(); return; } for (int i = 0; i < mSubscription.mMsgListeners.Count; i++) { MamdaMsgListener listener = (MamdaMsgListener)mSubscription.mMsgListeners[i]; listener.onMsg(mSubscription, msg, msgType); } }
/// <summary> /// Returns the respective MamdaErrorCode for a mamaMsgStatus code /// </summary> /// <param name="wombatStatus">mamaMsgStatus</param> /// <returns>The respective MamdaErrorCode</returns> public static MamdaErrorCode codeForMamaMsgStatus(mamaMsgStatus wombatStatus) { switch (wombatStatus) { case mamaMsgStatus.MAMA_MSG_STATUS_OK: return(MamdaErrorCode.MAMDA_NO_ERROR); case mamaMsgStatus.MAMA_MSG_STATUS_LINE_DOWN: return(MamdaErrorCode.MAMDA_ERROR_LINE_DOWN); case mamaMsgStatus.MAMA_MSG_STATUS_NO_SUBSCRIBERS: return(MamdaErrorCode.MAMDA_ERROR_NO_SUBSCRIBERS); case mamaMsgStatus.MAMA_MSG_STATUS_BAD_SYMBOL: return(MamdaErrorCode.MAMDA_ERROR_BAD_SYMBOL); case mamaMsgStatus.MAMA_MSG_STATUS_EXPIRED: return(MamdaErrorCode.MAMDA_ERROR_EXPIRED); case mamaMsgStatus.MAMA_MSG_STATUS_TIMEOUT: return(MamdaErrorCode.MAMDA_ERROR_TIMEOUT); case mamaMsgStatus.MAMA_MSG_STATUS_MISC: return(MamdaErrorCode.MAMDA_ERROR_MISC); case mamaMsgStatus.MAMA_MSG_STATUS_STALE: return(MamdaErrorCode.MAMDA_ERROR_STALE); case mamaMsgStatus.MAMA_MSG_STATUS_PLATFORM_STATUS: return(MamdaErrorCode.MAMDA_ERROR_PLATFORM_STATUS); case mamaMsgStatus.MAMA_MSG_STATUS_NOT_ENTITLED: return(MamdaErrorCode.MAMDA_ERROR_NOT_ENTITLED); case mamaMsgStatus.MAMA_MSG_STATUS_NOT_FOUND: return(MamdaErrorCode.MAMDA_ERROR_NOT_FOUND); case mamaMsgStatus.MAMA_MSG_STATUS_POSSIBLY_STALE: return(MamdaErrorCode.MAMDA_ERROR_POSSIBLY_STALE); case mamaMsgStatus.MAMA_MSG_STATUS_NOT_PERMISSIONED: return(MamdaErrorCode.MAMDA_ERROR_NOT_PERMISSIONED); case mamaMsgStatus.MAMA_MSG_STATUS_TOPIC_CHANGE: return(MamdaErrorCode.MAMDA_ERROR_TOPIC_CHANGE); case mamaMsgStatus.MAMA_MSG_STATUS_BANDWIDTH_EXCEEDED: return(MamdaErrorCode.MAMDA_ERROR_BANDWIDTH_EXCEEDED); default: Debug.Assert(false, String.Format("mamaMsgStatus {0} not mapped to an MamdaErrorCode", wombatStatus)); return(MamdaErrorCode.MAMDA_ERROR_PLATFORM_STATUS); } }
/// <summary> /// Return the status string /// </summary> public string stringForStatus(mamaMsgStatus type) { EnsurePeerCreated(); return Marshal.PtrToStringAnsi(NativeMethods.mamaStatus_stringForStatus((int)type)); }
/// <summary> /// Returns the respective MamdaErrorCode for a mamaMsgStatus code /// </summary> /// <param name="wombatStatus">mamaMsgStatus</param> /// <returns>The respective MamdaErrorCode</returns> public static MamdaErrorCode codeForMamaMsgStatus(mamaMsgStatus wombatStatus) { switch (wombatStatus) { case mamaMsgStatus.MAMA_MSG_STATUS_OK: return MamdaErrorCode.MAMDA_NO_ERROR; case mamaMsgStatus.MAMA_MSG_STATUS_LINE_DOWN: return MamdaErrorCode.MAMDA_ERROR_LINE_DOWN; case mamaMsgStatus.MAMA_MSG_STATUS_NO_SUBSCRIBERS: return MamdaErrorCode.MAMDA_ERROR_NO_SUBSCRIBERS; case mamaMsgStatus.MAMA_MSG_STATUS_BAD_SYMBOL: return MamdaErrorCode.MAMDA_ERROR_BAD_SYMBOL; case mamaMsgStatus.MAMA_MSG_STATUS_EXPIRED: return MamdaErrorCode.MAMDA_ERROR_EXPIRED; case mamaMsgStatus.MAMA_MSG_STATUS_TIMEOUT: return MamdaErrorCode.MAMDA_ERROR_TIMEOUT; case mamaMsgStatus.MAMA_MSG_STATUS_MISC: return MamdaErrorCode.MAMDA_ERROR_MISC; case mamaMsgStatus.MAMA_MSG_STATUS_STALE: return MamdaErrorCode.MAMDA_ERROR_STALE; case mamaMsgStatus.MAMA_MSG_STATUS_PLATFORM_STATUS: return MamdaErrorCode.MAMDA_ERROR_PLATFORM_STATUS; case mamaMsgStatus.MAMA_MSG_STATUS_NOT_ENTITLED: return MamdaErrorCode.MAMDA_ERROR_NOT_ENTITLED; case mamaMsgStatus.MAMA_MSG_STATUS_NOT_FOUND: return MamdaErrorCode.MAMDA_ERROR_NOT_FOUND; case mamaMsgStatus.MAMA_MSG_STATUS_POSSIBLY_STALE: return MamdaErrorCode.MAMDA_ERROR_POSSIBLY_STALE; case mamaMsgStatus.MAMA_MSG_STATUS_NOT_PERMISSIONED: return MamdaErrorCode.MAMDA_ERROR_NOT_PERMISSIONED; case mamaMsgStatus.MAMA_MSG_STATUS_TOPIC_CHANGE: return MamdaErrorCode.MAMDA_ERROR_TOPIC_CHANGE; case mamaMsgStatus.MAMA_MSG_STATUS_BANDWIDTH_EXCEEDED: return MamdaErrorCode.MAMDA_ERROR_BANDWIDTH_EXCEEDED; default: Debug.Assert(false, String.Format("mamaMsgStatus {0} not mapped to an MamdaErrorCode", wombatStatus)); return MamdaErrorCode.MAMDA_ERROR_PLATFORM_STATUS; } }