C       
C       File:          HelloServer_Component_Impl.f
C       Symbol:        HelloServer.Component-v0.6
C       Symbol Type:   class
C       Babel Version: 0.10.2
C       Description:   Server-side implementation for HelloServer.Component
C       
C       WARNING: Automatically generated; only changes within splicers preserved
C       
C       babel-version = 0.10.2
C       


C       
C       Symbol "HelloServer.Component" (version 0.6)
C       
C       The component implements a StringProducerPort (which generates "Hello World");
C       


C       DO-NOT-DELETE splicer.begin(_miscellaneous_code_start)
C       Insert extra code here...
C       DO-NOT-DELETE splicer.end(_miscellaneous_code_start)




C       
C       Class constructor called when the class is created.
C       

        subroutine HelloServer_Component__ctor_fi(self)
        implicit none
C       in HelloServer.Component self
        integer*8 self

C       DO-NOT-DELETE splicer.begin(HelloServer.Component._ctor)
C       Insert the implementation here...
C       DO-NOT-DELETE splicer.end(HelloServer.Component._ctor)
        end


C       
C       Class destructor called when the class is deleted.
C       

        subroutine HelloServer_Component__dtor_fi(self)
        implicit none
C       in HelloServer.Component self
        integer*8 self

C       DO-NOT-DELETE splicer.begin(HelloServer.Component._dtor)
C       Insert the implementation here...
C       DO-NOT-DELETE splicer.end(HelloServer.Component._dtor)
        end


C       
C       Static class initializer called exactly once before any user-defined method is dispatched
C       

        subroutine HelloServer_Component__load_fi()
        implicit none

C       DO-NOT-DELETE splicer.begin(HelloServer.Component._load)
C       Insert the implementation here...
C       DO-NOT-DELETE splicer.end(HelloServer.Component._load)
        end


C       
C       Method:  get[]
C       

        subroutine HelloServer_Component_get_fi(self, retval)
        implicit none
C       in HelloServer.Component self
        integer*8 self
C       out string retval
        character*(*) retval

C       DO-NOT-DELETE splicer.begin(HelloServer.Component.get)
        retval = 'Hello World!'
C       DO-NOT-DELETE splicer.end(HelloServer.Component.get)
        end


C       
C       Method:  send[]
C       

        subroutine HelloServer_Component_send_fi(self, data)
        implicit none
C       in HelloServer.Component self
        integer*8 self
C       out array<int,2,column-major> data
        integer*8 data

C       DO-NOT-DELETE splicer.begin(HelloServer.Component.send)
C       Insert the implementation here...
C       DO-NOT-DELETE splicer.end(HelloServer.Component.send)
        end


C       
C       Starts up a component presence in the calling framework.
C       @param Svc the component instance's handle on the framework world.
C       Contracts concerning Svc and setServices:
C       
C       The component interaction with the CCA framework
C       and Ports begins on the call to setServices by the framework.
C       
C       This function is called exactly once for each instance created
C       by the framework.
C       
C       The argument Svc will never be nil/null.
C       
C       Those uses ports which are automatically connected by the framework
C       (so-called service-ports) may be obtained via getPort during
C       setServices.
C       

        subroutine HelloServer_Component_setServices_fi(self, services)
        implicit none
C       in HelloServer.Component self
        integer*8 self
C       in gov.cca.Services services
        integer*8 services

C       DO-NOT-DELETE splicer.begin(HelloServer.Component.setServices)
        integer*8 port
        integer*8 properties
        integer*8 exception

        call gov_cca_Port__cast_f(self, port)
        call gov_cca_Services_createTypeMap_f( services, 
     &     properties, 
     &     exception )
        call catch( exception )
        call gov_cca_Services_addProvidesPort_f(
     &     services, 
     &     port, 
     &     'HelloServer',
     &     'strop.StringProducerPort',
     &     properties, 
     &     exception)
        call catch( exception )
        call gov_cca_TypeMap_deleteRef_f(properties)
C       DO-NOT-DELETE splicer.end(HelloServer.Component.setServices)
        end


C       DO-NOT-DELETE splicer.begin(_miscellaneous_code_end)
      subroutine catch( exception )
      implicit none
      integer*8 exception
      character*(512) msg
      character*(512) trace
      if ( exception .eq. 0 ) then
         return
      else
         call sidl_BaseException_getNote_f( exception, msg )
         print *, 'Exception Caught', msg
         call sidl_BaseException_getTrace_f( exception, trace )
         print *, trace
         exception = 0
      endif
      end
C       DO-NOT-DELETE splicer.end(_miscellaneous_code_end)
