У нас есть назначение, в котором мы должны реализовать диспетчер очереди печати, используя связанные списки. Я использовал список из STL для реализации всего. Я могу заставить программу отправить команду печати и сохранить статус документов. Проблема в том, что я не знаю, как имитировать/отправить фиктивную команду печати, чтобы документ печатался. Если я использую Sleep(), во всей программе есть задержка. В то же время я хочу, чтобы печать на бэкханде и другие пользователи имели доступ к программе. Любая помощь будет оценена относительно моей проблемы.Реализация буферизатора принтера
ответ
В РЕАЛЬНОМ диспетчере очереди печати есть либо несколько потоков (или в Unix, может быть, fork
), либо система использует подход типа «подождать несколько объектов», а когда есть что-то для печати, часть документ отправляется на принтер, настроенный так, что когда эта часть «потребляется», ожидаемый объект «готов». Затем спулер ожидает, что что-то произойдет (новое задание или распечатка). Когда ожидание завершено, оно определяет, что произошло. Если это новое задание на печать, поставите его в очередь, если это «некоторая печать завершена», он проверяет, является ли это последней печатью и завершает работу, или отправляет больше материала на принтер.
В pseudocdoe это может выглядеть примерно так:
for(;;)
{
what = wait_for_work();
switch (what)
{
case new_job:
add_new_job();
break;
case print_write_done:
if (document_complete)
remove_current_job();
else
send_more_from_current_job();
break;
case spooler_terminate:
exit(0);
default:
print_error_message();
}
}
Очевидно, что, не видя код, это трудно сказать, как вы должны его реализовать. Но можно было бы использовать таймер для имитации «документа, печатаемого небольшими кусками», скажем, 10 КБ потребляется каждые 100 мс, например.
- 1. Direct3D 9 Сэмплирование буферизатора
- 2. Реализация принтера для облачных принтеров Google
- 3. Анализ текста - сканера или буферизатора?
- 4. Java - Не перезаписывать с помощью буферизатора
- 5. Выполнение буферизатора от цикла, до следующей строки?
- 6. Шрифты на консоли последовательной консоли и буферизатора
- 7. Как включить объединение пулов принтера для принтера
- 8. Язык принтера для принтера hp в android
- 9. Мониторинг принтера
- 10. Как управлять выбором лотка принтера для принтера в Windows
- 11. Как автоматически вывести настройки принтера из принтера в очередь печати?
- 12. Как определить конкретные свойства принтера для задания принтера?
- 13. Как узнать имя принтера (имя принтера по умолчанию), используя java?
- 14. Как читать и запускать несколько переменных из буферизатора в java?
- 15. многократная запись символов с использованием буферизатора в java
- 16. Как скопировать изображение в java с помощью буферизатора/писателя
- 17. преобразование инфикса в постфикс с 3 классами (без буферизатора)
- 18. Какой порядок следует использовать для закрытия буферизатора и файлового администратора?
- 19. изображение не хранится на сервере с помощью буферизатора в android
- 20. Как найти статус принтера?
- 21. PowerShell v2 Добавление принтера
- 22. Ошибки настройки параметров принтера
- 23. Прогулка по дереву принтера
- 24. Ошибка принтера Pycups
- 25. Отправка специфических команд принтера
- 26. .net Прослушать состояние принтера
- 27. обнаружение присутствия принтера bluetooth
- 28. Контрольная головка принтера
- 29. Qt - Поиск принтера
- 30. Сохраните параметры настройки принтера
Итак, что именно вы просите? Как «притвориться, что что-то в процессе печати?» так что вы можете ставить в очередь несколько заданий и видеть, как медленно исчезают снова? –
Нам не нужно использовать настоящий принтер. Просто тип фиктивной команды, поэтому программа знает распечатанные документы. – Bhatti7
@MatsPetersson Да точно – Bhatti7