
module ExternalMemory
  module Workers

    # Empty worker class to show the signatures
    # @abstract
    class Worker

      # Create the worker
      # @param configuration [Hash]
      # @param execution_context [Blanquette::ExecutionContext]
      def initialize(configuration, execution_context)
      end

      # List exposed services names
      # @return [Array<String>]
      def services
        []
      end

      # Process a job
      # @param service_name [String] the service name
      # @param execution_parameters [Hash]
      # @param execution_context [ExternalMemory::Workers::ExecutionContext]
      # @return [String]
      def process(service_name, execution_parameters, execution_context)
      end

      # Shutdown the worker
      # @return [nil]
      def shutdown
      end

    end
  end
end
