# IRfAvatarClientFnSet Interface Reference

Inherits IUnknown.

List of all members.

## Public Member Functions
HRESULT | SaveAvatar ([in] BSTR bszNickname,[in] IStream *pCustomization,[in] IStream *pPoses,[in] IStream *pMimics)
HRESULT | GetContentAsync ([in] BSTR bszServerName,[in] RtContentType content_type,[in] IRsContentCallback *pCallback,[in] IRdAvatarCustomization *pTranslatingCustomization)
HRESULT | StartDownload ()
HRESULT | SetContentClient ([in] IRsContentClient *pClient)
HRESULT | GetContentClient ([out, retval] IRsContentClient **ppClient)
HRESULT | Destroy ()

## Detailed Description

Background worker downloading content to local cache and communicating with content server. Makes existing cache transparent Maintains list of pending downloads, downloads needed content and calls reception callback, or calls it directly if content is available in cache.

## Member Function Documentation

HRESULT IRfAvatarClientFnSet::SaveAvatar | ( | [in] BSTR | bszNickname,
|  | [in] IStream * | pCustomization,
|  | [in] IStream * | pPoses,
|  | [in] IStream * | pMimics |
| ) |  |  |

Uploads avatar customization with all other associated data

Parameters:

  | bszNickname | - name of user for which the customization is stored
  | pCustomization | - customization to store
  | pPoses | - serialized poses list
  | pMimics | - serialized facial morphs list

HRESULT IRfAvatarClientFnSet::GetContentAsync | ( | [in] BSTR | bszServerName,
|  | [in] RtContentType | content_type,
|  | [in] IRsContentCallback * | pCallback,
|  | [in] IRdAvatarCustomization * | pTranslatingCustomization |
| ) |  |  |

Asynchronous request for content download.

Parameters:

  | bszServerName | - name of content item on server
  | content_type | - type of content to download
  | pCallback | - callback to be called once download complete

HRESULT IRfAvatarClientFnSet::StartDownload | ( |  | ) |

Starts queued downloads. Called after all content is queued to avoid deadlocks

HRESULT IRfAvatarClientFnSet::SetContentClient | ( | [in] IRsContentClient * | pClient | ) |

Sets the content client instance. Content client is defined in network package and implements network communication with content server (server management node)

HRESULT IRfAvatarClientFnSet::GetContentClient | ( | [out, retval] IRsContentClient ** | ppClient | ) |

Gets the instance of associated content client

HRESULT IRfAvatarClientFnSet::Destroy | ( |  | ) |

Internal cleanup