/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.11
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#  define SWIGTEMPLATEDISAMBIGUATOR template
# elif defined(__HP_aCC)
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
#  define SWIGTEMPLATEDISAMBIGUATOR template
# else
#  define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__))
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__))
# else
#   define SWIGUNUSED
# endif
#endif

#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
# endif
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if defined(__GNUC__)
#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#    ifndef GCC_HASCLASSVISIBILITY
#      define GCC_HASCLASSVISIBILITY
#    endif
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif

/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
# define _SCL_SECURE_NO_DEPRECATE
#endif

/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
#endif

/* Intel's compiler complains if a variable which was never initialised is
 * cast to void, which is a common idiom which we use to indicate that we
 * are aware a variable isn't used.  So we just silence that warning.
 * See: https://github.com/swig/swig/issues/192 for more discussion.
 */
#ifdef __INTEL_COMPILER
# pragma warning disable 592
#endif



#include <stdlib.h>
#include <string.h>
#include <stdio.h>


#include "example.h"




extern int              ivar;
extern short            svar;
extern long             lvar;
extern unsigned int     uivar;
extern unsigned short   usvar;
extern unsigned long    ulvar;
extern signed char      scvar;
extern unsigned char    ucvar;
extern char             cvar;
extern float            fvar;
extern double           dvar;
extern char            *strvar;
extern const char       cstrvar[];
extern int             *iptrvar;
extern char             name[256];

extern Point           *ptptr;

extern Point            pt;


extern int  status;
extern char path[256];


extern void  print_vars();
extern int  *new_int(int value);
extern Point *new_Point(int x, int y);
extern char  *Point_print(Point *p);
extern void  pt_print();


#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT void Delphi_Point_x_set(Point * pasarg0, int pasarg1) {
  Point *arg1 = (Point *) 0 ;
  int arg2 ;
  
  arg1 = *(Point **)&pasarg0; 
  arg2 = (int)pasarg1;
  if (arg1) (arg1)->x = arg2;
}


SWIGEXPORT int Delphi_Point_x_get(Point * pasarg0) {
  int cresult = 0 ;
  Point *arg1 = (Point *) 0 ;
  int result;
  
  arg1 = *(Point **)&pasarg0; 
  result = (int) ((arg1)->x);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_Point_y_set(Point * pasarg0, int pasarg1) {
  Point *arg1 = (Point *) 0 ;
  int arg2 ;
  
  arg1 = *(Point **)&pasarg0; 
  arg2 = (int)pasarg1;
  if (arg1) (arg1)->y = arg2;
}


SWIGEXPORT int Delphi_Point_y_get(Point * pasarg0) {
  int cresult = 0 ;
  Point *arg1 = (Point *) 0 ;
  int result;
  
  arg1 = *(Point **)&pasarg0; 
  result = (int) ((arg1)->y);
  cresult = result; 
  return cresult;
}


SWIGEXPORT Point * Delphi_new_Point() {
  Point * cresult = 0 ;
  Point *result = 0 ;
  
  result = (Point *)calloc(1, sizeof(Point));
  *(Point **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_delete_Point(Point * pasarg0) {
  Point *arg1 = (Point *) 0 ;
  
  arg1 = *(Point **)&pasarg0; 
  free((char *) arg1);
}


SWIGEXPORT void Delphi_ivar_set(int pasarg0) {
  int arg1 ;
  
  arg1 = (int)pasarg0;
  ivar = arg1;
}


SWIGEXPORT int Delphi_ivar_get() {
  int cresult = 0 ;
  int result;
  
  result = (int)ivar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_svar_set(short pasarg0) {
  short arg1 ;
  
  arg1 = (short)pasarg0;
  svar = arg1;
}


SWIGEXPORT short Delphi_svar_get() {
  short cresult = 0 ;
  short result;
  
  result = (short)svar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_lvar_set(long pasarg0) {
  long arg1 ;
  
  arg1 = (long)pasarg0;
  lvar = arg1;
}


SWIGEXPORT long Delphi_lvar_get() {
  long cresult = 0 ;
  long result;
  
  result = (long)lvar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_uivar_set(unsigned int pasarg0) {
  unsigned int arg1 ;
  
  arg1 = (unsigned int)pasarg0;
  uivar = arg1;
}


SWIGEXPORT unsigned int Delphi_uivar_get() {
  unsigned int cresult = 0 ;
  unsigned int result;
  
  result = (unsigned int)uivar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_usvar_set(unsigned short pasarg0) {
  unsigned short arg1 ;
  
  arg1 = (unsigned short)pasarg0;
  usvar = arg1;
}


SWIGEXPORT unsigned short Delphi_usvar_get() {
  unsigned short cresult = 0 ;
  unsigned short result;
  
  result = (unsigned short)usvar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_ulvar_set(unsigned long pasarg0) {
  unsigned long arg1 ;
  
  arg1 = (unsigned long)pasarg0;
  ulvar = arg1;
}


SWIGEXPORT unsigned long Delphi_ulvar_get() {
  unsigned long cresult = 0 ;
  unsigned long result;
  
  result = (unsigned long)ulvar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_scvar_set(signed char pasarg0) {
  signed char arg1 ;
  
  arg1 = (signed char)pasarg0;
  scvar = arg1;
}


SWIGEXPORT signed char Delphi_scvar_get() {
  signed char cresult = 0 ;
  signed char result;
  
  result = (signed char)scvar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_ucvar_set(unsigned short pasarg0) {
  unsigned char arg1 ;
  
  arg1 = (unsigned char)pasarg0;
  ucvar = arg1;
}


SWIGEXPORT unsigned short Delphi_ucvar_get() {
  unsigned short cresult = 0 ;
  Byte result;
  
  result = (unsigned char)ucvar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_cvar_set(char pasarg0) {
  char arg1 ;
  
  arg1 = (char)pasarg0;
  cvar = arg1;
}


SWIGEXPORT char Delphi_cvar_get() {
  char cresult = 0 ;
  char result;
  
  result = (char)cvar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_fvar_set(float pasarg0) {
  float arg1 ;
  
  arg1 = (float)pasarg0;
  fvar = arg1;
}


SWIGEXPORT float Delphi_fvar_get() {
  float cresult = 0 ;
  float result;
  
  result = (float)fvar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_dvar_set(double pasarg0) {
  double arg1 ;
  
  arg1 = (double)pasarg0;
  dvar = arg1;
}


SWIGEXPORT double Delphi_dvar_get() {
  double cresult = 0 ;
  double result;
  
  result = (double)dvar;
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_strvar_set(char * pasarg0) {
  char *arg1 = (char *) 0 ;
  
  arg1 = (char *)pasarg0;
  {
    free(strvar);
    if (arg1) {
      strvar = (char *) malloc(strlen((const char *)arg1)+1);
      strcpy((char *)strvar, (const char *)arg1);
    } else {
      strvar = 0;
    }
  }
}


SWIGEXPORT char * Delphi_strvar_get() {
  char * cresult = 0 ;
  char *result = 0 ;
  
  result = (char *)strvar;
  *(char **)&cresult = result; 
  return cresult;
}


SWIGEXPORT char * Delphi_cstrvar_get() {
  char * cresult = 0 ;
  char *result = 0 ;
  
  result = (char *)(char *)cstrvar;
  {
    if(result) cresult = result; 
  }
  return cresult;
}


SWIGEXPORT void Delphi_iptrvar_set(int * pasarg0) {
  int *arg1 = (int *) 0 ;
  
  arg1 = *(int **)&pasarg0; 
  iptrvar = arg1;
}


SWIGEXPORT int * Delphi_iptrvar_get() {
  int * cresult = 0 ;
  int *result = 0 ;
  
  result = (int *)iptrvar;
  *(int **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_name_set(char * pasarg0) {
  char *arg1 ;
  
  arg1 = (char *)pasarg0;
  {
    if(arg1) {
      strncpy((char*)name, (const char *)arg1, 256-1);
      name[256-1] = 0;
    } else {
      name[0] = 0;
    }
  }
  
  
}


SWIGEXPORT char * Delphi_name_get() {
  char * cresult = 0 ;
  char *result = 0 ;
  
  result = (char *)(char *)name;
  {
    if(result) cresult = result; 
  }
  return cresult;
}


SWIGEXPORT void Delphi_ptptr_set(Point * pasarg0) {
  Point *arg1 = (Point *) 0 ;
  
  arg1 = *(Point **)&pasarg0; 
  ptptr = arg1;
}


SWIGEXPORT Point * Delphi_ptptr_get() {
  Point * cresult = 0 ;
  Point *result = 0 ;
  
  result = (Point *)ptptr;
  *(Point **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_pt_set(Point * pasarg0) {
  Point *arg1 = (Point *) 0 ;
  
  arg1 = *(Point **)&pasarg0; 
  pt = *arg1;
}


SWIGEXPORT Point * Delphi_pt_get() {
  Point * cresult = 0 ;
  Point *result = 0 ;
  
  result = (Point *)&pt;
  *(Point **)&cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi_status_get() {
  int cresult = 0 ;
  int result;
  
  result = (int)status;
  cresult = result; 
  return cresult;
}


SWIGEXPORT char * Delphi_path_get() {
  char * cresult = 0 ;
  char *result = 0 ;
  
  result = (char *)(char *)path;
  {
    if(result) cresult = result; 
  }
  return cresult;
}


SWIGEXPORT void Delphi_print_vars() {
  print_vars();
}


SWIGEXPORT int * Delphi_new_int(int pasarg0) {
  int * cresult = 0 ;
  int arg1 ;
  int *result = 0 ;
  
  arg1 = (int)pasarg0;
  result = (int *)new_int(arg1);
  *(int **)&cresult = result; 
  return cresult;
}


SWIGEXPORT Point * Delphi_make_Point(int pasarg0, int pasarg1) {
  Point * cresult = 0 ;
  int arg1 ;
  int arg2 ;
  Point *result = 0 ;
  
  arg1 = (int)pasarg0;
  arg2 = (int)pasarg1;
  result = (Point *)new_Point(arg1,arg2);
  *(Point **)&cresult = result; 
  return cresult;
}


SWIGEXPORT char * Delphi_Point_print(Point * pasarg0) {
  char * cresult = 0 ;
  Point *arg1 = (Point *) 0 ;
  char *result = 0 ;
  
  arg1 = *(Point **)&pasarg0; 
  result = (char *)Point_print(arg1);
  *(char **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_pt_print() {
  pt_print();
}


#ifdef __cplusplus
}
#endif

