/*
 * Portions of this file Copyright 1999-2005 University of Chicago
 * Portions of this file Copyright 1999-2005 The University of Southern California.
 *
 * This file or a portion of this file is licensed under the
 * terms of the Globus Toolkit Public License, found at
 * http://www.globus.org/toolkit/download/license.html.
 * If you redistribute this file, with or without
 * modifications, you must include this notice in the file.
 */


#ifndef _RESOURCEPROPERTIESTESTSERVICE_SKELETON_H_
#define _RESOURCEPROPERTIESTESTSERVICE_SKELETON_H_

#include "globus_common.h"

EXTERN_C_BEGIN

#include "globus_service_registry.h"
#include "globus_soap_message.h"
#include "globus_operation_provider.h"
#include "ResourcePropertiesTestService.h"

extern xsd_QName ResourcePropertiesTestService_service_qname;

globus_result_t
ResourcePropertiesTestService_init(
    globus_service_descriptor_t *       service_desc);

globus_result_t
ResourcePropertiesTestService_finalize(
    globus_service_descriptor_t *       service_desc);

extern globus_service_descriptor_t      ResourcePropertiesTestService_descriptor;

/**
 * globus_result_t ResourcePropertiesTestServiceResourceInit(const char * resource_id);
 */
#define ResourcePropertiesTestServiceInitResource(RESOURCE_ID)        \
    globus_operation_table_init_resource(       \
        ResourcePropertiesTestService_descriptor.operations,          \
        RESOURCE_ID)
        
/* Error Types for ResourcePropertiesTestService */
enum
{

    RESOURCEPROPERTIESTESTPORTTYPE_SETTERMINATIONTIME_ERROR_TYPE,
    RESOURCEPROPERTIESTESTPORTTYPE_DESTROY_ERROR_TYPE,
    RESOURCEPROPERTIESTESTPORTTYPE_QUERYRESOURCEPROPERTIES_ERROR_TYPE,
    RESOURCEPROPERTIESTESTPORTTYPE_SETRESOURCEPROPERTIES_ERROR_TYPE,
    RESOURCEPROPERTIESTESTPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_ERROR_TYPE,
    RESOURCEPROPERTIESTESTPORTTYPE_GETRESOURCEPROPERTY_ERROR_TYPE,
    RESOURCEPROPERTIESTESTPORTTYPE_CREATERESOURCEPROPERTIESTEST_ERROR_TYPE
};


extern xsd_QName ResourcePropertiesTestPortType_SetTerminationTime_op_qname;
extern xsd_QName ResourcePropertiesTestPortType_SetTerminationTime_input_qname;

#define ResourcePropertiesTestPortType_SetTerminationTime_error(message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_SETTERMINATIONTIME_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "SetTerminationTime Error: %s", message))

#define ResourcePropertiesTestPortType_SetTerminationTime_chain_error(result, message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            result ? globus_error_get(result) : NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_SETTERMINATIONTIME_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "SetTerminationTime Error: %s", \
            (message ? message : "Nonterminal Error")))
                    
/* these functions are the service implementation and
 * must be implemented by the service implementer
 */

globus_result_t
ResourcePropertiesTestPortType_SetTerminationTime_init(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    wsrl_SetTerminationTimeType * SetTerminationTime);

globus_result_t
ResourcePropertiesTestPortType_SetTerminationTime_impl(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    globus_service_descriptor_t *       descriptor,
    wsrl_SetTerminationTimeType * SetTerminationTime,
    wsrl_SetTerminationTimeResponseType * SetTerminationTimeResponse,
    const char **                       fault_name,
    void ** fault);


extern const char * ResourcePropertiesTestPortType_SetTerminationTime_fault_strings[];

#define ResourcePropertiesTestPortType_SetTerminationTimeFaultString(FAULT_TYPE) \
    ResourcePropertiesTestPortType_SetTerminationTime_fault_strings[FAULT_TYPE - 1]


extern xsd_QName ResourcePropertiesTestPortType_Destroy_op_qname;
extern xsd_QName ResourcePropertiesTestPortType_Destroy_input_qname;

#define ResourcePropertiesTestPortType_Destroy_error(message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_DESTROY_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "Destroy Error: %s", message))

#define ResourcePropertiesTestPortType_Destroy_chain_error(result, message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            result ? globus_error_get(result) : NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_DESTROY_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "Destroy Error: %s", \
            (message ? message : "Nonterminal Error")))
                    
/* these functions are the service implementation and
 * must be implemented by the service implementer
 */

globus_result_t
ResourcePropertiesTestPortType_Destroy_init(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    wsrl_DestroyType * Destroy);

globus_result_t
ResourcePropertiesTestPortType_Destroy_impl(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    globus_service_descriptor_t *       descriptor,
    wsrl_DestroyType * Destroy,
    wsrl_DestroyResponseType * DestroyResponse,
    const char **                       fault_name,
    void ** fault);


extern const char * ResourcePropertiesTestPortType_Destroy_fault_strings[];

#define ResourcePropertiesTestPortType_DestroyFaultString(FAULT_TYPE) \
    ResourcePropertiesTestPortType_Destroy_fault_strings[FAULT_TYPE - 1]


extern xsd_QName ResourcePropertiesTestPortType_QueryResourceProperties_op_qname;
extern xsd_QName ResourcePropertiesTestPortType_QueryResourceProperties_input_qname;

#define ResourcePropertiesTestPortType_QueryResourceProperties_error(message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_QUERYRESOURCEPROPERTIES_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "QueryResourceProperties Error: %s", message))

#define ResourcePropertiesTestPortType_QueryResourceProperties_chain_error(result, message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            result ? globus_error_get(result) : NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_QUERYRESOURCEPROPERTIES_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "QueryResourceProperties Error: %s", \
            (message ? message : "Nonterminal Error")))
                    
/* these functions are the service implementation and
 * must be implemented by the service implementer
 */

globus_result_t
ResourcePropertiesTestPortType_QueryResourceProperties_init(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    wsrp_QueryResourcePropertiesType * QueryResourceProperties);

globus_result_t
ResourcePropertiesTestPortType_QueryResourceProperties_impl(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    globus_service_descriptor_t *       descriptor,
    wsrp_QueryResourcePropertiesType * QueryResourceProperties,
    wsrp_QueryResourcePropertiesResponseType * QueryResourcePropertiesResponse,
    const char **                       fault_name,
    void ** fault);


extern const char * ResourcePropertiesTestPortType_QueryResourceProperties_fault_strings[];

#define ResourcePropertiesTestPortType_QueryResourcePropertiesFaultString(FAULT_TYPE) \
    ResourcePropertiesTestPortType_QueryResourceProperties_fault_strings[FAULT_TYPE - 1]


extern xsd_QName ResourcePropertiesTestPortType_SetResourceProperties_op_qname;
extern xsd_QName ResourcePropertiesTestPortType_SetResourceProperties_input_qname;

#define ResourcePropertiesTestPortType_SetResourceProperties_error(message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_SETRESOURCEPROPERTIES_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "SetResourceProperties Error: %s", message))

#define ResourcePropertiesTestPortType_SetResourceProperties_chain_error(result, message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            result ? globus_error_get(result) : NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_SETRESOURCEPROPERTIES_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "SetResourceProperties Error: %s", \
            (message ? message : "Nonterminal Error")))
                    
/* these functions are the service implementation and
 * must be implemented by the service implementer
 */

globus_result_t
ResourcePropertiesTestPortType_SetResourceProperties_init(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    wsrp_SetResourcePropertiesType * SetResourceProperties);

globus_result_t
ResourcePropertiesTestPortType_SetResourceProperties_impl(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    globus_service_descriptor_t *       descriptor,
    wsrp_SetResourcePropertiesType * SetResourceProperties,
    wsrp_SetResourcePropertiesResponseType * SetResourcePropertiesResponse,
    const char **                       fault_name,
    void ** fault);


extern const char * ResourcePropertiesTestPortType_SetResourceProperties_fault_strings[];

#define ResourcePropertiesTestPortType_SetResourcePropertiesFaultString(FAULT_TYPE) \
    ResourcePropertiesTestPortType_SetResourceProperties_fault_strings[FAULT_TYPE - 1]


extern xsd_QName ResourcePropertiesTestPortType_GetMultipleResourceProperties_op_qname;
extern xsd_QName ResourcePropertiesTestPortType_GetMultipleResourceProperties_input_qname;

#define ResourcePropertiesTestPortType_GetMultipleResourceProperties_error(message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "GetMultipleResourceProperties Error: %s", message))

#define ResourcePropertiesTestPortType_GetMultipleResourceProperties_chain_error(result, message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            result ? globus_error_get(result) : NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "GetMultipleResourceProperties Error: %s", \
            (message ? message : "Nonterminal Error")))
                    
/* these functions are the service implementation and
 * must be implemented by the service implementer
 */

globus_result_t
ResourcePropertiesTestPortType_GetMultipleResourceProperties_init(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    wsrp_GetMultipleResourcePropertiesType * GetMultipleResourceProperties);

globus_result_t
ResourcePropertiesTestPortType_GetMultipleResourceProperties_impl(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    globus_service_descriptor_t *       descriptor,
    wsrp_GetMultipleResourcePropertiesType * GetMultipleResourceProperties,
    wsrp_GetMultipleResourcePropertiesResponseType * GetMultipleResourcePropertiesResponse,
    const char **                       fault_name,
    void ** fault);


extern const char * ResourcePropertiesTestPortType_GetMultipleResourceProperties_fault_strings[];

#define ResourcePropertiesTestPortType_GetMultipleResourcePropertiesFaultString(FAULT_TYPE) \
    ResourcePropertiesTestPortType_GetMultipleResourceProperties_fault_strings[FAULT_TYPE - 1]


extern xsd_QName ResourcePropertiesTestPortType_GetResourceProperty_op_qname;
extern xsd_QName ResourcePropertiesTestPortType_GetResourceProperty_input_qname;

#define ResourcePropertiesTestPortType_GetResourceProperty_error(message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_GETRESOURCEPROPERTY_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "GetResourceProperty Error: %s", message))

#define ResourcePropertiesTestPortType_GetResourceProperty_chain_error(result, message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            result ? globus_error_get(result) : NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_GETRESOURCEPROPERTY_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "GetResourceProperty Error: %s", \
            (message ? message : "Nonterminal Error")))
                    
/* these functions are the service implementation and
 * must be implemented by the service implementer
 */

globus_result_t
ResourcePropertiesTestPortType_GetResourceProperty_init(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    xsd_QName * GetResourceProperty);

globus_result_t
ResourcePropertiesTestPortType_GetResourceProperty_impl(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    globus_service_descriptor_t *       descriptor,
    xsd_QName * GetResourceProperty,
    wsrp_GetResourcePropertyResponseType * GetResourcePropertyResponse,
    const char **                       fault_name,
    void ** fault);


extern const char * ResourcePropertiesTestPortType_GetResourceProperty_fault_strings[];

#define ResourcePropertiesTestPortType_GetResourcePropertyFaultString(FAULT_TYPE) \
    ResourcePropertiesTestPortType_GetResourceProperty_fault_strings[FAULT_TYPE - 1]


extern xsd_QName ResourcePropertiesTestPortType_CreateResourcePropertiesTest_op_qname;
extern xsd_QName ResourcePropertiesTestPortType_CreateResourcePropertiesTest_input_qname;

#define ResourcePropertiesTestPortType_CreateResourcePropertiesTest_error(message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_CREATERESOURCEPROPERTIESTEST_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "CreateResourcePropertiesTest Error: %s", message))

#define ResourcePropertiesTestPortType_CreateResourcePropertiesTest_chain_error(result, message) \
    globus_error_put( \
        globus_error_construct_error( \
            &ResourcePropertiesTestService_module, \
            result ? globus_error_get(result) : NULL, \
            RESOURCEPROPERTIESTESTPORTTYPE_CREATERESOURCEPROPERTIESTEST_ERROR_TYPE, \
            __FILE__, \
            _globus_func_name, \
            __LINE__, \
            "CreateResourcePropertiesTest Error: %s", \
            (message ? message : "Nonterminal Error")))
                    
/* these functions are the service implementation and
 * must be implemented by the service implementer
 */

globus_result_t
ResourcePropertiesTestPortType_CreateResourcePropertiesTest_init(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    rptest_CreateResourcePropertiesTestType * CreateResourcePropertiesTest);

globus_result_t
ResourcePropertiesTestPortType_CreateResourcePropertiesTest_impl(
    globus_service_engine_t             engine,
    globus_soap_message_handle_t        message,
    globus_service_descriptor_t *       descriptor,
    rptest_CreateResourcePropertiesTestType * CreateResourcePropertiesTest,
    rptest_CreateResourcePropertiesTestResponseType * CreateResourcePropertiesTestResponse,
    const char **                       fault_name,
    void ** fault);


extern const char * ResourcePropertiesTestPortType_CreateResourcePropertiesTest_fault_strings[];

#define ResourcePropertiesTestPortType_CreateResourcePropertiesTestFaultString(FAULT_TYPE) \
    ResourcePropertiesTestPortType_CreateResourcePropertiesTest_fault_strings[FAULT_TYPE - 1]


EXTERN_C_END

#endif
