---
title: serverCalculate
description: "服务端接收客户端的查询数据，并返回对应的value给客户端。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0041.html
sourcePath: /source/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0041.html
indexId: 83b50cdeb721fd979bd0cbe661897c7cdee33bf4c0bfb2fea50d13bbcbd889d664
---
# serverCalculate

服务端接收客户端的查询数据，并返回对应的value给客户端。

```
int serverCalculate(
DG_TeeCtx *dgTeeCtx,
DG_BucketMap *bucketMap
)
```

#### 参数


**表1 参数说明**

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| dgTeeCtx | KCAL上下文信息 | 为initTeeCtx成功初始化的结果 | 输入 |
| bucketMap | 内部分桶结构 | 存储外部key\-value数据为内部分桶结构，方便查询 | 输入 |


#### 返回值

- 成功：返回0。
- 失败：返回错误码。


#### 错误码


**表2 错误码**

| 错误码 | 错误码值 | 描述 | 特殊说明 |
| --- | --- | --- | --- |
| DG\_SUCCESS | 0 | 成功 | \- |
| DG\_FAILURE | 1 | 通信失败 | \- |
| DG\_ERR\_MPC\_TEE\_INVALID\_NODE\_INFO | 4503 | 无效的tee节点信息 | \- |
| DG\_ERR\_MPC\_TEE\_INVALID\_PARAM | 4501 | 参数校验失败 | dgCfg为NULL或dgTeeCtx二级指针为空 |


#### 依赖

- dgCfg依赖  DataGuard操作集设置类接口
设置KCAL配置信息成功，用设定好的dgCfg作为此接口的入参。
- pirOpts依赖  DG_InitPirOpts
的成功初始化PIR类算子函数组。
- 依赖的头文件为"data_guard_mpc.h"。


#### 示例

使用调用DG_InitPirOpts成功后的pirOpts来调用serverCalculate接口。


```
#include  "data_guard_mpc.h"
// pirOpts为DG_InitPirOpts成功后的结果，dgTee为initTeeCtx成功后的结果。
// bucketMap为offlineCalculate的输出结果。
int res = pirOpts.serverCalculate(dgTee,bucketMap);
if (rv != 0) {
return rv;
}
```
