

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 動態應用程式架構 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-1EC85AC67893 做為管道名稱。

## 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),
}
```