Posted on 2019-01-14 13:55
Prayer 閱讀(442)
評論(0) 編輯 收藏 引用 所屬分類:
TUXEDO
int tpcall(char *svc, char *idata, long ilen, char **
odata, long *olen, long flags)
描述:客戶端同步調用
服務端的名為svc的SERVICE,
參數:
*svc:SERVICE的名稱
char *idata: 輸入緩沖區的地址,客戶端傳給服務端的參數放在該緩沖區內
long ilen: 輸入緩沖區的長度——只有緩沖區類型為CARRAY時才指定長度,其他情況傳0
char **
odata 輸出緩沖區的地址,服務端傳給客戶端的結果放在該緩沖區內
long *olen:輸出緩沖區的長度
long flags: 調用標志,由以下幾個:
TPNOTRAN
如果調用svc的客戶端當前在TRANSACTION方式下,那么svc不參與當前的TRANSACTION。
TPNOCHANGE
如果
服務端返回的緩沖區類型與客戶端定義的緩沖區(
odata)類型不一致,默認情況下,odata會轉換成與服務端返回的緩沖區類型一致的類型,如果設置了該FLAG,那么當出現這種情況時,不進行緩沖區類型轉換,并且會報錯。
TPNOBLOCK
默認情況下, 如果客戶端有阻塞條件存在(如CLIENT的TCP/IP中的緩沖區滿,磁盤I/O忙等),那么客戶端會阻塞在那里,直到阻塞消除或超時出錯。如果設置了 TPNOBLOCK,當客戶端有阻塞條件存在時,TPCALL()會立刻返回并報錯. 注意TPNOBLOCK只對發送請求時起作用,如果在接收服務端返回的結果時有阻塞條件存在,客戶端會在那里等待,直到阻塞消除或超時出錯
TPNOTIME
如果客戶端有阻塞條件存在,客戶端會一直阻塞在那里,即使到了超時時間也不返回,但如果該客戶端是在TRANSACTION模式下,當到了
TPSIGRSTRT
如果在進行系統調用時,被信號中斷,該系統調用會重新進行。
調用成功返回0,失敗返回-1, 錯誤號保存在
全局變量tperrno中。