Unsubscribe() protected method

Unsubscribe action.
Will be called when the device stack receives an invocation of the Unsubscribe action for the owning device. Must be implemented iff EnableActionUnsubscribe was called.
protected Unsubscribe ( IDvInvocation aInvocation, string aSid ) : void
aInvocation IDvInvocation Interface allowing querying of aspects of this particular action invocation.
aSid string
return void
コード例 #1
0
        private static int DoUnsubscribe(IntPtr aPtr, IntPtr aInvocation)
        {
            GCHandle gch = GCHandle.FromIntPtr(aPtr);
            DvProviderOpenhomeOrgSubscriptionLongPoll1 self = (DvProviderOpenhomeOrgSubscriptionLongPoll1)gch.Target;
            DvInvocation invocation = new DvInvocation(aInvocation);
            string       sid;

            try
            {
                invocation.ReadStart();
                sid = invocation.ReadString("Sid");
                invocation.ReadEnd();
                self.Unsubscribe(invocation, sid);
            }
            catch (ActionError e)
            {
                invocation.ReportActionError(e, "Unsubscribe");
                return(-1);
            }
            catch (PropertyUpdateError)
            {
                invocation.ReportError(501, String.Format("Invalid value for property {0}", "Unsubscribe"));
                return(-1);
            }
            catch (Exception e)
            {
                Console.WriteLine("WARNING: unexpected exception {0}(\"{1}\") thrown by {2} in {3}", e.GetType(), e.Message, "Unsubscribe", e.TargetSite.Name);
                Console.WriteLine("         Only ActionError or PropertyUpdateError should be thrown by actions");
                return(-1);
            }
            try
            {
                invocation.WriteStart();
                invocation.WriteEnd();
            }
            catch (ActionError)
            {
                return(-1);
            }
            catch (System.Exception e)
            {
                Console.WriteLine("ERROR: unexpected exception {0}(\"{1}\") thrown by {2} in {3}", e.GetType(), e.Message, "Unsubscribe", e.TargetSite.Name);
                Console.WriteLine("       Only ActionError can be thrown by action response writer");
            }
            return(0);
        }
コード例 #2
0
        private static int DoUnsubscribe(IntPtr aPtr, IntPtr aInvocation)
        {
            GCHandle gch = GCHandle.FromIntPtr(aPtr);
            DvProviderOpenhomeOrgSubscriptionLongPoll1 self = (DvProviderOpenhomeOrgSubscriptionLongPoll1)gch.Target;
            DvInvocation invocation = new DvInvocation(aInvocation);
            string       sid;

            try
            {
                invocation.ReadStart();
                sid = invocation.ReadString("Sid");
                invocation.ReadEnd();
                self.Unsubscribe(invocation, sid);
            }
            catch (ActionError e)
            {
                invocation.ReportActionError(e, "Unsubscribe");
                return(-1);
            }
            catch (PropertyUpdateError)
            {
                invocation.ReportError(501, String.Format("Invalid value for property {0}", new object[] { "Unsubscribe" }));
                return(-1);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("WARNING: unexpected exception {0} thrown by {1}", new object[] { e, "Unsubscribe" });
                System.Diagnostics.Debug.WriteLine("         Only ActionError or PropertyUpdateError should be thrown by actions");
                return(-1);
            }
            try
            {
                invocation.WriteStart();
                invocation.WriteEnd();
            }
            catch (ActionError)
            {
                return(-1);
            }
            catch (System.Exception e)
            {
                System.Diagnostics.Debug.WriteLine("WARNING: unexpected exception {0} thrown by {1}", new object[] { e, "Unsubscribe" });
                System.Diagnostics.Debug.WriteLine("       Only ActionError can be thrown by action response writer");
            }
            return(0);
        }