// Initialize session callback handler
$callback = new SessionCallbackHandler();
$session->setCallbackHandler($callback);
switch ($data_sending_mode) {
    case 0:
        foreach ($job_documents as $job_id => $documents) {
            foreach ($documents as $document) {
                $session->queueDocument($document);
            }
            $length = count($document);
            print "{$length} documents queued for {$job_id} job ID\n";
        }
        break;
    case 1:
        foreach ($job_documents as $job_id => $documents) {
            $session->queueBatch($documents);
            $length = count($documents);
            print "{$length} documents queued for {$job_id} job ID\n";
        }
        break;
    default:
        $full_batch = array();
        foreach ($job_documents as $job_id => $documents) {
            $full_batch = array_merge($full_batch, $documents);
        }
        $session->queueBatch($full_batch);
        $length = count($full_batch);
        print "{$length} documents queued in single batch\n";
        break;
}
print "\n";
    $initialTexts[] = $line;
}
if (!feof($file)) {
    echo "Error: unexpected fgets() fail\n";
}
fclose($file);
foreach ($initialTexts as $text) {
    // Creates a sample document which need to be processed on Semantria
    // Unique document ID
    // Source text which need to be processed
    $doc_id = uniqid('', TRUE);
    $documents[] = array('id' => $doc_id, 'text' => $text);
    $tracker[$doc_id] = TASK_STATUS_QUEUED;
    if (count($documents) == $subscription['basic_settings']['batch_limit']) {
        $docsCount = count($documents);
        $res = $session->queueBatch($documents);
        if ($res == 200 || $res == 202) {
            print "{$docsCount} documents queued successfully.\n";
            $documents = array();
        }
    }
}
$docsCount = count($documents);
if ($docsCount) {
    $res = $session->queueBatch($documents);
    if ($res == 200 || $res == 202) {
        print "{$docsCount} documents queued successfully.\n";
    } else {
        die("Unexpected error.\n");
    }
}