
%module(directors="1") director_extend

%extend SpObject 
{
   virtual int dummy()          // Had to remove virtual to work
   {
      return $self->getFooBar();
   }
};

%inline %{
#ifndef SWIG_DIRECTORS
// dummy definition for non-director languages
namespace Swig {
  typedef int Director;
}
#endif
%}

// Some director implementations do not have Swig::director
#if !defined(SWIGGO)
%extend SpObject
{
  size_t ExceptionMethod()
  {
// Check positioning of director code in wrapper file
// Below is what we really want to test, but director exceptions vary too much across all languages
//    throw Swig::DirectorException("DirectorException was not in scope!!");
// Instead check definition of Director class as that is defined in the same place as DirectorException (director.swg)
    size_t size = sizeof(Swig::Director);
    return size;
  }
}
#endif


%inline %{
class SpObject
{
public:
   SpObject() {}
   virtual ~SpObject() {}

   int getFooBar() const {
      return 666;
   }

private:
   // Do NOT define the assignment operator
   SpObject& operator=(const SpObject& rhs);

   // This class can not be copied.  Do NOT define the copy Constructor.
   SpObject (const SpObject& rhs);
};
%}

