public function process($process)
    {
        $ds = new DataStore;
        $process->pipe($ds);
        $top_process = $process;
        while ($top_process->previous()!=null) {
            $top_process = $top_process->previous();
        }
        $top_process->receiveMeta($this->metaData, $this);
        $top_process->startInput($this);

        foreach ($this->rows as $row) {
            $top_process->input($row, $this);
        }
        $top_process->endInput($this);
        return $ds;
    }
public function process($process)
    {
        $ds = new DataStore;
        $process->pipe($ds);
        $top_process = $process;
        while ($top_process->previous()!=null) {
            $top_process = $top_process->previous();
        }
        $top_process->receiveMeta($this->metaData, $this);
        $top_process->startInput($this);

        foreach ($this->rows as $row) {
            $top_process->input($row, $this);
        }
        $top_process->endInput($this);
        return $ds;
    }
public function process ( $ process ) { $ ds = new DataStore ; $ process -> pipe ( $ ds ) ; $ top_process = $ process ; while ( $ top_process -> previous ( ) != null ) { $ top_process = $ top_process -> previous ( ) ; } $ top_process -> receiveMeta ( $ this -> metaData , $ this ) ; $ top_process -> startInput ( $ this ) ; foreach ( $ this -> rows as $ row ) { $ top_process -> input ( $ row , $ this ) ; } $ top_process -> endInput ( $ this ) ; return $ ds ; }
Pipe rows of data to process and get result

Sometime you may need to further process data event they has reach
datastore, you may do so with this method.

Examples: $groupData = $dataStore->process(Group::process(["by"=>"date"]));

@param string $process A new series of process you want data to go through

@return DataStore New datastore containing result
Pipe rows of data to process and get result