IWMSCacheProxy.QueryCacheMissPolicy (Visual Basic .NET)
Previous | Next |
IWMSCacheProxy.QueryCacheMissPolicy (Visual Basic .NET)
The server calls the QueryCacheMissPolicy method to query the cache plug-in for a cache-miss policy.
Syntax
Parameters
bstrOriginUrl
[in] String containing the origin URL.
pUserContext
[in] IWMSContext object containing the user context.
pCommandContext
[in] IWMSCommandContext object containing the command context.
pPresentationContext
[in] IWMSContext object containing the presentation context.
pCachePluginContext
[in] Object containing a cache plug-in context.
lQueryType
[in] Member of the WMS_CACHE_QUERY_TYPE_FLAGS enumeration type that indicates why the server called IWMSCacheProxy.QueryCache. This must be a bitwise OR of one or more of the following values.
Value | Description |
WMS_CACHE_QUERY_OPEN | A client using a downstream proxy requested content. |
WMS_CACHE_QUERY_GET_CONTENT_INFO | A downstream proxy requested information about content cached on the remote computer. |
WMS_CACHE_QUERY_CACHE_EVENT | A cache event notice is being sent upstream. If WMS_CACHE_QUERY_LOCAL_EVENT is set, the cache event was generated by the local computer. Otherwise, it was sent by a downstream proxy server. |
WMS_CACHE_QUERY_REVERSE_PROXY | A downstream server is configured to be a reverse proxy server. If a cache proxy plug-in supports reverse proxy, it can use this flag to determine whether it must map client requests to an upstream server farm. |
WMS_CACHE_QUERY_LOCAL_EVENT | The local server is generating an event to send upstream. |
[in] pCallback
IWMSCacheProxyCallback object containing the callback function. The cache plug-in calls IWMSCacheProxyCallback.OnQueryCacheMissPolicy to respond to a call to QueryCache.
[in] varContext
Object containing a value defined by the server to identify which call to QueryCacheMissPolicy the plug-in is responding to when it calls IWMSCacheProxyCallback.OnQueryCacheMissPolicy. You must pass this value back unaltered.
Return Values
This method does not return a value.
Remarks
A proxy server must call QueryCache on the cache plug-in and receive a cache miss before it calls QueryCacheMissPolicy. A custom cache plug-in can use the WMS_CACHE_QUERY_TYPE_FLAGS enumeration type in the lQueryType parameter to direct the implementation of a cache-miss policy.
Example Code
Imports Microsoft.WindowsMediaServices.Interop Imports System.Runtime.InteropServices Public Sub QueryCacheMissPolicy(ByVal OriginUrl As String, _ ByVal UserContext As IWMSContext, _ ByVal CommandContext As IWMSCommandContext, _ ByVal PresentationContext As IWMSContext, _ ByVal CachePluginContext As Object, _ ByVal lQueryType As Integer, _ ByVal Callback As IWMSCacheProxyCallback, _ ByVal varContext As Object) _ Implements IWMSCacheProxy.QueryCacheMissPolicy Dim nOpenFlag As Integer Dim nGCI As Integer Dim nReverseProxy As Integer Dim ci As ContentInfo Dim ciRP As ContentInfo Dim Response As WMS_CACHE_QUERY_MISS_RESPONSE Dim ContentInfoContext As IWMSContext Try nOpenFlag = WMS_CACHE_QUERY_TYPE_FLAGS.WMS_CACHE_QUERY_OPEN nGCI = lQueryType And WMS_CACHE_QUERY_TYPE_FLAGS.WMS_CACHE_QUERY_GET_CONTENT_INFO nReverseProxy = lQueryType & WMS_CACHE_QUERY_TYPE_FLAGS.WMS_CACHE_QUERY_REVERSE_PROXY ' The ContentInfo class is user-defined and includes ' information about a cached item. ci = New ContentInfo(OriginUrl, Nothing) ' An open request was issued. If (nOpenFlag And lQueryType) <> 0 Then ' Retrieve content information for the normal proxy mode. If nReverseProxy = 0 Then ci.CacheProxyCallback = Callback ci.varContext = varContext CacheProxyServer.GetContentInformation(OriginUrl, _ PresentationContext, _ Nothing, _ Nothing, _ Me, _ ci) Else ' Reverse proxy mode: ' Map the requested URL to the reverse proxy URL. ' The call to the user-defined GetContentInfo() searches ' a reverse proxy ContentInfo object for a ' "ReverseProxy" string. ciRP = Nothing GetContentInfo(OriginUrl, ciRP) Response = WMS_CACHE_QUERY_MISS_RESPONSE.WMS_CACHE_QUERY_MISS_PLAY_BROADCAST If (ciRP.ContentType And 1) = 0 Then ' Play the content as a broadcast stream. Response = WMS_CACHE_QUERY_MISS_RESPONSE.WMS_CACHE_QUERY_MISS_PLAY_BROADCAST Else ' Play the content on demand. Response = WMS_CACHE_QUERY_MISS_RESPONSE.WMS_CACHE_QUERY_MISS_PLAY_ON_DEMAND End If ' Create a content information context. The ' GetContentInfoContext() function is user-defined. ContentInfoContext = Nothing GetContentInfoContext(ci, ContentInfoContext) ' Call OnQueryCacheMissPolicy. Callback.OnQueryCacheMissPolicy(0, _ Response, _ ciRP.CacheUrl, _ Nothing, _ ContentInfoContext, _ varContext) End If End If If (nGCI And lQueryType) <> 0 Then ' Forward the request upstream. Response = WMS_CACHE_QUERY_MISS_RESPONSE.WMS_CACHE_QUERY_MISS_FORWARD_REQUEST ContentInfoContext = Nothing GetContentInfoContext(ci, ContentInfoContext) Callback.OnQueryCacheMissPolicy(0, _ Response, _ OriginUrl, _ Nothing, _ ContentInfoContext, _ varContext) End If ' A downstream cache proxy server propagated a remote ' cache proxy event. Forward the event to an upstream server. If (lQueryType And WMS_CACHE_QUERY_TYPE_FLAGS.WMS_CACHE_QUERY_CACHE_EVENT) <> 0 Then Callback.OnQueryCacheMissPolicy(0, _ Response, _ Nothing, _ Me, _ Nothing, _ varContext) End If Catch Throw New COMException() End Try End Sub
Requirements
Reference: Add a reference to Microsoft.WindowsMediaServices.
Namespace: Microsoft.WindowsMediaServices.Interop.
Assembly: Microsoft.WindowsMediaServices.dll.
Library: WMSServerTypeLib.dll.
Platform: Windows Server 2003, Enterprise Edition; Windows Server 2003, Datacenter Edition; Windows Server 2008.
See Also
Previous | Next |