# IRfNetworkCache Interface Reference

Inherits IRsObject.

List of all members.

## Public Member Functions
HRESULT | GenerateCacheIIDAttr ([in] IRsNode *pNode)
HRESULT | RemoveCacheIIDAttr ([in] IRsNode *pNode)
HRESULT | GetNetCacheDir ([out, retval] BSTR *pbstrNetCacheDir)
HRESULT | GetObjPathInNetCacheFromIID ([in] IID iidCacheObj,[out, retval] BSTR *pbstrFilePath)
HRESULT | GetObjPathInNetCache ([in] BSTR bstrIIDCacheObj,[out, retval] BSTR *pbstrFilePath)
HRESULT | WriteObjToNetCache ([in] IRsNode *pNode,[in] IStream *pStm)
HRESULT | PurgeCache ([in] RtDWORD dwKeepDays)

## Detailed Description

The network cache function-set provides methods to manipulate with the downloaded objects.

## Member Function Documentation

HRESULT IRfNetworkCache::GenerateCacheIIDAttr | ( | [in] IRsNode * | pNode | ) |

Generate cache identification number.

- The number is stored in CON_CMD_NETWORK_MANUAL_CACHE_IID (con.name: NetManualCacheIID) connector as IID.
- This IID is used for manual cache system for an object's version identification.
- This method sense to be used only on top most objects of the Shared Space.

Parameters:

  | pNode | [in] Node for which you want to generate new cache IID. If any sub-object has assigned the IID, then it is removed.

HRESULT IRfNetworkCache::RemoveCacheIIDAttr | ( | [in] IRsNode * | pNode | ) |

Remove cache identification attribute CON_CMD_NETWORK_MANUAL_CACHE_IID (con.name: NetManualCacheIID) so the node will no longer be cached.

Parameters:

  | pNode | [in] Node for which you want remove cache IID. The IID is removed from all selected nodes.

HRESULT IRfNetworkCache::GetNetCacheDir | ( | [out, retval] BSTR * | pbstrNetCacheDir | ) |

Returns Network Cache directory path.

Returns:
  pbstrNetCacheDir [out,retval] Full path of the cache directory.

HRESULT IRfNetworkCache::GetObjPathInNetCacheFromIID | ( | [in] IID | iidCacheObj,
|  | [out, retval] BSTR * | pbstrFilePath |
| ) |  |  |

Returns Cache Full file path for specified object's cache str.IID.

Parameters:

  | iidCacheObj | [in] Specify the object's cache IID.

Returns:
  pbstrFilePath [out,retval] Returns full file path for the cached object.

HRESULT IRfNetworkCache::GetObjPathInNetCache | ( | [in] BSTR | bstrIIDCacheObj,
|  | [out, retval] BSTR * | pbstrFilePath |
| ) |  |  |

Returns Cache full file path for specified object's cache IID.

Parameters:

  | bstrIIDCacheObj | [in] Specify the object's cache IID in string form.

Returns:
  pbstrFilePath [out,retval] Returns full file path for the cached object.

HRESULT IRfNetworkCache::WriteObjToNetCache | ( | [in] IRsNode * | pNode,
|  | [in] IStream * | pStm |
| ) |  |  |

Write object into cache if it isn't written yet and if it is possible to cache.

- If the object is already cached and the stream size is different, the new one will be saved.

Parameters:

  | pNode | [in] Check if the object is supposed to be cached. If yes, save it into cache.
  | pStm | [in] Received stream form of the object.

S_OK if the object was put into cache or if it already exists. S_FALSE if the object is not cache-able. or other error.

HRESULT IRfNetworkCache::PurgeCache | ( | [in] RtDWORD | dwKeepDays | ) |

Remove objects from network cache.

Parameters:

  | dwKeepDays | [in] Only objects accessed before specified number of days will be deleted.