You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

213 lines
5.9 KiB

/************************************************************************
Copyright (c) 2005-2011 by Juphoon System Software, Inc.
All rights reserved.
This software is confidential and proprietary to Juphoon System,
Inc. No part of this software may be reproduced, stored, transmitted,
disclosed or used in any form or by any means other than as expressly
provided by the written license agreement between Juphoon and its
licensee.
THIS SOFTWARE IS PROVIDED BY JUPHOON "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL JUPHOON BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Juphoon System Software, Inc.
Email: support@juphoon.com
Web: http://www.juphoon.com
************************************************************************/
/*************************************************
File name : mtc_conf.h
Module : rich session enabler
Author : bob.liu
Created on : 2015-06-02
Description :
Data structure and function declare required by mtc conference
Modify History:
1. Date: Author: Modification:
*************************************************/
#ifndef _MTC_PATH_H__
#define _MTC_PATH_H__
#include "mtc_def.h"
/**
* @file
* @brief MTC path Interfaces
*
* This file includes session and path interface function.
*/
#ifdef __cplusplus
extern "C" {
#endif
/* data receive */
typedef int (* PFN_DATARECV)(void* pUser, const unsigned char *pucData, unsigned int iLen);
/**
* @brief A key whose value is a number object in json format reflecting
* path id.
*/
#define MtcPathIdKey "MtcPathIdKey"
/**
* @brief A key whose value is a string object in json format reflecting
* local arc host.
*/
#define MtcPathHostKey "MtcPathHostKey"
/**
* @brief A key whose value is a number object in json format reflecting
* local arc port.
*/
#define MtcPathPortKey "MtcPathPortKey"
/**
* @brief A key whose value is a string object in json format reflecting
* reason.
*/
#define MtcPathReasonKey "MtcPathReasonKey"
/**
* @brief Posted when path init succeed.
*
* The pcInfo of this notification contains
* @ref MtcPathIdKey
* @ref MtcPathHostKey
* @ref MtcPathPortKey
*/
#define MtcPathOnInitReadyNotification "MtcPathOnInitReadyNotification"
/**
* @brief Posted when path connect to peer succeed.
*
* The pcInfo of this notification contains
* @ref MtcPathIdKey
*/
#define MtcPathOnConnSucceedNotification "MtcPathOnConnSucceedNotification"
/**
* @brief Posted when path connect closed.
*
* The pcInfo of this notification contains
* @ref MtcPathIdKey
*/
#define MtcPathOnConnClosedNotification "MtcPathOnConnClosedNotification"
/**
* @brief Posted when path connect to peer failed.
*
* The pcInfo of this notification contains
* @ref MtcPathIdKey
* @ref MtcPathReasonKey
*/
#define MtcPathOnConnFailNotification "MtcPathOnConnFailNotification"
/** @} */
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
EXPORT_FLAG {
#endif
/**
* @brief MTC Path, establishing data path.
*
* If path resource created successfully,
* @ref MtcPathOnInitReadyNotification will be notified with
* the local host and port of path resource.
*
* @param [in] bReliable Reliable Flag. TRUE if you need data receive reliable.
* @param [in] pUser User Data. will recevied in PFN_DATARECV.
* @param [in] pfnDataRecvCb Data recevied callback.
*
* @return The id of this new created session on succeed, otherwise return ZMAXUINT.
*
* @see @ref Mtc_PathClose
*/
MTCFUNC unsigned int Mtc_PathCreate(bool bReliable, void* pUser, PFN_DATARECV pfnDataRecvCb);
/**
* @brief MTC Path, data path close.
*
* @param [in] iPathId The path Id.
*
* @retval 0 on succeed.
* @retval 1 on failure.
*
* @see @ref Mtc_PathCreate
*/
MTCFUNC int Mtc_PathClose(unsigned int iPathId);
/**
* @brief MTC Path, path connect to peer.
*
* If path resource connect successfully,
* @ref MtcPathOnConnSucceedNotification will be notified with
* the id of path resource.
* Otherwise @ref MtcPathOnConnFailNotification will be notified.
*
* @param [in] iPathId The path Id.
* @param [in] pcPeerHost The peer host.
* @param [in] iPort The peer port.
*
* @retval 0 on succeed.
* @retval 1 on failure.
*
* @see @ref Mtc_PathCreate
*/
MTCFUNC int Mtc_PathConnect(unsigned int iPathId, const char* pcPeerHost, unsigned int iPort);
/**
* @brief MTC Path, data path send data.
*
* @param [in] iPathId The path Id.
* @param [in] pData The data pointer.
* @param [in] iDataSize The data length.
*
* @retval 0 on succeed.
* @retval 1 on failure.
*
* @see @ref Mtc_PathCreate
*/
MTCFUNC int Mtc_PathSend(unsigned int iPathId, void *pData, unsigned int iDataSize);
#ifdef ZOS_SUPT_JAVA
/**
* @brief MTC Path, establishing data path.
*
* If path resource created successfully,
* @ref MtcPathOnInitReadyNotification will be notified with
* the local host and port of path resource.
*
* @param [in] bReliable Reliable Flag. TRUE if you need data receive reliable.
* @param [in] pUser User Data. will recevied in PFN_DATARECV.
*
* @return The id of this new created session on succeed, otherwise return ZMAXUINT.
*
* @see @ref Mtc_PathClose
*/
MTCFUNC unsigned int Mtc_JavaPathCreate(bool bReliable, void* pUser);
#endif
#ifdef __cplusplus
}
#endif
#endif /* _MTC_CONF_H__ */