/******************************************************************************
             Copyright (c) 2006 Unigraphics Solutions, Inc.
                       Unpublished - All Rights Reserved

*******************************************************************************/
#include <uf.h>
#include <stdio.h>
 #define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
 static int report( char *file, int line, char *call, int irc)
 {
   if (irc)
   {
       char    messg[133];
       printf("%s, line %d:  %s\n", file, line, call);
       (UF_get_fail_message(irc, messg)) ?
           printf("    returned a %d\n", irc) :
           printf("    returned error %d:  %s\n", irc, messg);
   }
   return(irc);
 }
 static void do_ugopen_api(void)
 {
 char *ptr;


 UF_CALL(UF_set_variable("UGII_NEW_VARIABLE", "VALUE"));
 UF_CALL(UF_translate_variable("UGII_NEW_VARIABLE", &ptr));
 printf("Value of UGII_NEW_VARIABLE is : %s\n", ptr);

 }
 void ufusr(char *param, int *retcode, int paramLen)
 {
   if (!UF_CALL(UF_initialize()))
   {
       do_ugopen_api();
       UF_CALL(UF_terminate());
   }
 }
 int ufusr_ask_unload(void)
 {
   return (UF_UNLOAD_IMMEDIATELY);
 }

 void ufusr_cleanup(void)
 {
    /* Perform cleanup *
 }
