

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 动态应用程序框架 Thrift 定义和命名管道名称
<a name="dynamic-application-framework-thrift-definitions"></a>

Thrift 允许您使用 WorkSpaces 应用程序提供的简单定义文件来编译 RPC 客户端。RPC 客户端允许您与在流媒体实例上运行的 WorkSpaces 应用程序代理软件进行通信。有关如何编译适用于您的语言的 RPC 客户端的信息，请参阅 [Apache Thrift 文档](https://thrift.apache.org/docs/)。在编译适用于您所选语言的 Thrift 库后，使用命名管道传输构建 Thrift 客户端。使用 D56C0258-2173-48D5-B0E6-1 EC85 AC67893 作为管道名称。

## AppStreamServer. thrift
<a name="appstream-server-thrift"></a>

```
namespace netstd AppStream.ApplicationCatalogService.Model

const string ServiceEndpoint = "D56C0258-2173-48D5-B0E6-1EC85AC67893";


struct AddApplicationsRequest
{
    1: required string userSid;
    2: required list<Application> applications;
}

struct AddApplicationsResponse
{
}

struct RemoveApplicationsRequest
{
    1: required string userSid; 
    2: required list<string> applicationIds;
}

struct RemoveApplicationsResponse
{
}

struct ClearApplicationsRequest
{
    1: required string userSid; 
}

struct ClearApplicationsResponse
{
}

struct Application
{
    1: required string id;
    2: required string displayName;
    3: required string launchPath;
    4: required string iconData;
    5: string launchParams;
    6: string workingDirectory;
}

exception AppStreamClientException
{
    1: string errorMessage,
    2: ErrorCode errorCode
}
	  
exception AppStreamServerException
{
    1: string errorMessage,
    2: ErrorCode errorCode
}

enum ErrorCode
{
}

service ApplicationCatalogService
{
    AddApplicationsResponse AddApplications(1:AddApplicationsRequest request)
    throws (1: AppStreamClientException ce, 2: AppStreamServerException se),

    RemoveApplicationsResponse RemoveApplications(1:RemoveApplicationsRequest request)
    throws (1: AppStreamClientException ce, 2: AppStreamServerException se),

    ClearApplicationsResponse ClearApplications(1:ClearApplicationsRequest request)
    throws (1: AppStreamClientException ce, 2: AppStreamServerException se),
}
```