TUXEDO函数说明.docx

上传人:b****5 文档编号:6187001 上传时间:2023-01-04 格式:DOCX 页数:10 大小:18.50KB
下载 相关 举报
TUXEDO函数说明.docx_第1页
第1页 / 共10页
TUXEDO函数说明.docx_第2页
第2页 / 共10页
TUXEDO函数说明.docx_第3页
第3页 / 共10页
TUXEDO函数说明.docx_第4页
第4页 / 共10页
TUXEDO函数说明.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

TUXEDO函数说明.docx

《TUXEDO函数说明.docx》由会员分享,可在线阅读,更多相关《TUXEDO函数说明.docx(10页珍藏版)》请在冰豆网上搜索。

TUXEDO函数说明.docx

TUXEDO函数说明

1与缓冲区使用有关的ATMI2

1.1tpalloc.2

1.2tprealloc.2

1.3tpfree.2

1.4tptypes.2

2常用的FML(FML32)操作函数...3

2.1Falloc.3

2.2Finit3

2.3Fadd.3

2.4Fchg.3

2.5Fget4

2.5Fprint4

2.6Ferror4

3连接的建立与断开有关的ATMI5

3.1tpchkauth.5

3.2tpinit5

3.3tpterm..6

4与请求TUXEDOSERVER有关的ATMI6

4.1tpcall6

4.2tpacall7

4.3tpgetrply.7

4.4tpcancel7

4.5tpgprio.8

4.6tpsprio.8

5与请求错误处理有关的ATMI8

5.1tpstrerror8

5.2tperrordetail9

5.3tpstrerrordetail9

 

 

 

1与缓冲区使用有关的ATMI

1.1tpalloc

char*tpalloc(char*type,char*subtype,longsize)

描述:

分配缓冲区

参数:

type:

缓冲区的类型

subtype:

缓冲区的子类型,只有VIEW有子类型,其他的缓冲区该参数要设为NULL

long:

缓冲区的大小

返回值:

成功返回一个指向所分配空间首地址的CHAR*形指针,失败返回NULL。

1.2tprealloc

char*tprealloc(char*ptr,longsize)

描述:

重新分配缓冲区

参数:

ptr:

指向原缓冲区首地址的指针

size:

新缓冲区的大小

返回值:

成功返回一个指向新分配空间首地址的CHAR*形指针,失败返回NULL。

1.3tpfree

voidtpfree(char*bufptr)

描述:

释放由TPALLOC()或TPREALLOC()分配的缓冲区

参数:

bufptr:

指向要释放的缓冲区首地址的指针

返回值:

注意:

用TPALLOC(),TPREALLOC()分配的内存只能有TPFREE()释放掉,不能用FREE()

1.4tptypes

longtptypes(char*ptr,char*type,char*subtype)

描述:

返回有ptr所指向的缓冲区的类型及子类型

参数:

ptr:

指向要进行类型识别的缓冲区首地址的指针

type:

类型名

subtype:

子类型名(只对VIEW类型有效)

返回值:

0成功,-1失败,错误号保存在全局变量tperrno中。

 

2常用的FML(FML32)操作函数

2.1Falloc

FBFR*Falloc(FLDOCCF,FLDLENV)

描述:

分配一块FML缓冲区

参数:

FLDOCC:

该FML缓冲区的字段个数,

FLDLEN:

该FML缓冲区的长度

返回值:

成功返回一个指向该FML缓冲区首地址的指针,失败返回NULL,错误号保存在全局

变量Ferror中

注意:

该FML缓冲区不能用于TPCALL(),TPACALL(),TPRETURN()等中,在这些函数中用到

的FML缓冲区只能用TPALLOC()分配。

2.2Finit

intFinit(FBFR*fbfr,FLDLENbuflen)

描述:

初始化该FML缓冲区

参数:

fbfr:

一个指向该FML缓冲区首地址的指针

buflen:

该FML缓冲区的长度

返回值:

失败为-1,错误号保存在全局变量Ferror中

2.3Fadd

intFadd(FBFR*fbfr,FLDIDfieldid,char*value,FLDLENlen)

 

描述:

往FML缓冲区fbfr中ID为fieldid的字段增加一个值value

参数:

fbfr:

指向该FML缓冲区首地址的指针

fieldid:

要增加的字段的ID

value:

要增加的值,如果时其他类型的要转化为char*

len:

该字段的长度,如果不时CARRARY类型的,可设为0

返回值:

失败为-1,错误号保存在全局变量Ferror中

2.4Fchg

intFchg(FBFR*fbfr,FLDIDfieldid,intocc,char*value,FLDLENlen)

描述:

改变fbfr中ID为fieldid字段的值。

参数:

fbfr:

指向该FML缓冲区首地址的指针

fieldid:

要增加的字段的ID

value:

该字段的新值,如果时其他类型的要转化为char*

len:

该字段的长度,如果不时CARRARY类型的,可设为0

返回值:

失败为-1,错误号保存在全局变量Ferror中

2.5Fget

intFget(FBFR*fbfr,FLDIDfieldid,intocc,char*value,FLDLEN*maxlen)

描述:

从fbfr缓冲区中取ID为fieldid字段的值到value中。

参数:

fbfr:

指向该FML缓冲区首地址的指针

fieldid:

字段的ID

value:

取出的值保存到该指针指向的地址中

maxlen:

可以COPY到缓冲区value中的字符串的长度,返回值为真正COPY到该缓冲区的字

符串的长度

返回值:

失败为-1,错误号保存在全局变量Ferror中

2.5Fprint

Fprint(FBFR*fbfr)

描述:

按格式打印fbfr缓冲区的内容。

一般用于程序调试中。

参数:

fbfr:

指向该FML缓冲区首地址的指针

返回值:

失败为-1,错误号保存在全局变量Ferror中

2.6Ferror

Ferror:

和C语言中的errno类似,当调用FML(FML32)函数出错时,把错误号保存在全局变量Ferror中。

char*Fstrerror(interr)

描述:

返回错误号为err的错误描述

参数:

err:

Ferror的值

返回值:

成功返回错误描述,失败返回NULL

 

3连接的建立与断开有关的ATMI

3.1tpchkauth

inttpchkauth()

描述:

检查该TUXEDOSERVER所采用的安全方式

参数:

返回值:

TPNOAUTH:

不需要认证

TPSYSAUTH:

需要口令认证

TPAPPSUTH:

需要口令认证,并且还需要应用级的认证或授权.

-1:

调用失败,错误号保存在全局变量tperrno中。

3.2tpinit

inttpinit(TPINIT*tpinfo)

描述:

与TUXEDOSERVER建立连接

参数:

TPINFO

返回值:

失败返回-1,错误号保存在全局变量tperrno中。

 

TPINIT结构体在atmi.h中的定义如下

structtpinfo_t{

charusrname[MAXTIDENT+2];/*clientusername*/

charcltname[MAXTIDENT+2];/*applicationclientname*/

charpasswd[MAXTIDENT+2];/*applicationpassword*/

chargrpname[MAXTIDENT+2];/*clientgroupname*/

longflags;/*initializationflags*/

longdatalen;/*lengthofappspecificdata*/

longdata;/*placeholderforappdata*/

};

typedefstructtpinfo_tTPINIT;

说明:

username,cltname,passwd,grpname,data,datalen用于安全认证中

flags:

用于定义以何种方式通知该客户端一个UNSOLICTEDMESSAGE的到来.它的值可以为:

TPU-SIG

TPU-DIP

TPU-IGN

TPSA-FASTPATH

TPSA-PROTECTED

3.3tpterm

inttpterm()

描述:

断开与TUXEDOSERVER建立连接

参数:

返回值:

失败返回-1,错误号保存在全局变量tperrno中。

 

4与请求TUXEDOSERVER有关的ATMI

4.1tpcall

inttpcall(char*svc,char*idata,longilen,char**odata,long*olen,longflags)

描述:

客户端同步调用服务端的名为svc的SERVICE,

参数:

*svc:

SERVICE的名称

char*idata:

输入缓冲区的地址,客户端传给服务端的参数放在该缓冲区内

longilen:

输入缓冲区的长度

char**odata输出缓冲区的地址,服务端传给客户端的结果放在该缓冲区内

long*olen:

输出缓冲区的长度

longflags:

调用标志,由以下几个:

TPNOTRAN

如果调用svc的客户端当前在TRANSACTION方式下,那么svc不参与当前的TRANSACTION。

 

TPNOCHANGE

如果服务端返回的缓冲区类型与客户端定义的缓冲区(odata)类型不一致,默认情况下,odata会转换成与服务端返回的缓冲区类型一致的类型,如果设置了该FLAG,那么当出现这种情况时,不进行缓冲区类型转换,并且会保错。

 

TPNOBLOCK

默认情况下,如果客户端有阻塞条件存在(如CLIENT的TCP/IP中的缓冲区满,磁盘I/O忙等),那么客户端会阻塞在那里,直到阻塞消除或超时出错。

如果设置了TPNOBLOCK,当客户端有阻塞条件存在时,TPCALL()会立刻返回并报错.注意TPNOBLOCK只对发送请求时起作用,如果在接收服务端返回的结果时有阻塞条件存在,客户端会在那里等待,直到阻塞消除或超时出错

 

TPNOTIME

如果客户端有阻塞条件存在,客户端会一直阻塞在那里,即使到了超时时间也不返回,但如果该客户端是在TRANSACTION模式下,当到了

事务的超时时间,还是会报超时错误并返回。

 

TPSIGRSTRT

如果在进行系统调用时,被信号中断,该系统调用会重新进行。

 

调用成功返回0,失败返回-1,错误号保存在全局变量tperrno中。

 

4.2tpacall

inttpacall(char*svc,char*data,longlen,longflags)

描述:

客户端异步调用服务端的名为svc的SERVICE,不等服务端返回结果,程序可继续往

下走,在某个地方调用tpgetrply()取的服务端的返回

参数:

char*svc,char*data,longlen参数的含义与tpcall()中的一样

flags可设置为:

TPNOTRAN,TPNOREPLY,TPNOBLOCKTPNOTIME,TPSIGRSTRT.

TPNOTRAN,TPNOBLOCKTPNOTIME,TPSIGRSTRT的含义与与tpcall()中的一样

TPNOREPLY:

调用tpacall()的客户端不想接收SEVER端的应答。

如果设置了

TPNOREPLY:

服务端不会给该客户端发送应答。

返回值:

失败返回-1,成功返回一个HANDLER,可作为tpgetrply的参数,用于取应答

4.3tpgetrply

inttpgetrply(int*cd,char**data,long*len,longflags)

描述:

取出服务端对tpacall()的应答。

参数:

cdtpacall()返回的HANDLER

char**data返回缓冲区的地址,服务端传给客户端的结果放在该缓冲区内

long*len:

返回缓冲区的长度

flags:

可以是:

TPNOBLOCK,TPNOTIME,TPSIGRSTRT,TPGETANY(不管cd的值,从服务

器的应答队列中取第一个可用的消息),TPNOCHANGE

返回值:

失败返回-1,错误号保存在全局变量tperrno中。

 

4.4tpcancel

inttpcancel(inthandle)

描述:

如果当前的程序不处于事务模式中,取消对tpacall()的应答,如果处于事务模式

中,则不能取消对tpacall()的应答,该调用会失败.

参数:

tpacall()返回的HANDLER

返回值:

失败返回-1,错误号保存在全局变量tperrno中。

4.5tpgprio

inttpgprio()

描述:

返回最近发送(tpcall(),tpacall())或接收(tpgetrply())的一个消息的优先级

参数:

返回值:

1-100消息的优先级,值越高,优先级越高

失败返回-1,错误号保存在全局变量tperrno中。

 

struct{

inthdl;/*handle*/

intpr;/*priority*/

}pa[SIZE];

for(i=0;i

/*Determineserviceanddataforrequest*/

pa[i].hdl=tpacall(Svc,buf,len,flags);

/*Savepriorityusedtosendrequest*/

pa[i].pr=tpgprio();

}

/*Useqsort(3)routinetosorthandlesinpriorityorder*/

qsort((char*)pa,requests,sizeof(pa[0]),cmpfcn);

for(i=0;i

tpgetrply(&pa[i].hdl,&rbufp,&rlen,rflags);

}

 

4.6tpsprio

inttpsprio(intprio,longflags)

描述:

设置下一个要发送的消息的优先级

参数:

0-prio为相对值,设置下一个要发送的消息的优先级为现在的优先级加上prio

TPABSOLUTE:

prio为绝对值,设置下一个要发送的消息的优先级为prio

返回值:

失败返回-1,错误号保存在全局变量tperrno中。

5与请求错误处理有关的ATMI

5.1tpstrerror

char*tpstrerror(inttperrno)

描述:

返回错误号为tperrno的错误描述

参数:

tperrno:

在atmi.h中定义的全局变量,用于标识错误号,类似于C中的errno

返回值:

失败返回NULL,成功返回错误号为tperrno的错误描述.

5.2tperrordetail

inttperrordetail(longflags)

描述:

返回当前进程或线程最近调用ATMI的出错的更详细的描述

参数:

设为0

返回值:

如果没有错误返回0,有错误返回错误描述号

 

5.3tpstrerrordetail

char*tpstrerrordetail(interr,longflags)

描述:

返回错误描述号err的详细描述信息

参数:

err:

tperrordetail()的返回值,

flags:

设为0

返回值:

失败返回NULL,成功返回详细描述信息

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1