4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster/* -*- Mode: C -*-
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * The contents of this file are subject to the terms
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * of the Common Development and Distribution License
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * (the License). You may not use this file except in
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * compliance with the License.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * You can obtain a copy of the License at
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * opensso/legal/CDDLv1.0.txt
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * See the License for the specific language governing
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * permission and limitations under the License.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * When distributing Covered Code, include this CDDL
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * Header Notice in each file and include the License file
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * at opensso/legal/CDDLv1.0.txt.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * If applicable, add the following below the CDDL Header,
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * with the fields enclosed by brackets [] replaced by
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * your own identifying information:
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * $Id: am_notify.h,v 1.2 2008/06/25 05:48:54 qcheng Exp $
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster */
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster#ifndef AM_NOTIFY_H
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster#define AM_NOTIFY_H
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster#include <am_policy.h>
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan FosterAM_BEGIN_EXTERN_C
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster/*
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * This function should be called by the service listening on the
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * notification URL given in the properties file if notification is enabled.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * It parses the XML message and calls SSO Token listeners and policy
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * notification handlers accordingly.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * Parameters:
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * xmlmsg
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * XML message containing the notification message.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * policy_handle_t
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * The policy handle created from am_policy_service_init().
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * NULL if policy is not initialized or not used.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * Returns:
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * AM_SUCCESS
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * if XML message was successfully parsed and processed.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * AM_INVALID_ARGUMENT
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * if any input parameter is invalid.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * AM_ERROR_PARSING_XML
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * if there was an error parsing the XML message.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * AM_ERROR_DISPATCH_LISTENER
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * if there was an error dispatching the listener(s).
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster *
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * AM_FAILURE
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster * if any other error occurred.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster */
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan FosterAM_EXPORT am_status_t
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Fosteram_notify(const char *xmlmsg, am_policy_t policy_handle);
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan FosterAM_END_EXTERN_C
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster#endif