driver: New function output_log_nocopy().
[pspp] / src / output / driver.h
index 3fb4cabfe1424c830a058fb7f6dd74210f735493..c16774dd99cdf3857926769bb012e1807a6d5090 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2007, 2009 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2007, 2009, 2010, 2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #define OUTPUT_DRIVER_H 1
 
 #include <stdbool.h>
+#include <stddef.h>
+#include "libpspp/compiler.h"
 
 struct output_item;
-struct string_map;
+struct page_setup;
 struct string_set;
+struct string_map;
 
-void output_close (void);
-
-struct output_driver *output_driver_create (const char *class_name,
-                                            struct string_map *options);
-
-bool output_define_macro (const char *, struct string_map *macros);
-void output_read_configuration (const struct string_map *macros,
-                                const struct string_set *drivers);
-void output_configure_driver (const char *);
+void output_get_supported_formats (struct string_set *);
 
-void output_list_classes (void);
+void output_engine_push (void);
+void output_engine_pop (void);
 
 void output_submit (struct output_item *);
 void output_flush (void);
 
-/* Device types. */
-enum output_device_type
-  {
-    OUTPUT_DEVICE_UNKNOWN,     /* Unknown type of device. */
-    OUTPUT_DEVICE_LISTING,     /* Listing device. */
-    OUTPUT_DEVICE_SCREEN,      /* Screen device. */
-    OUTPUT_DEVICE_PRINTER      /* Printer device. */
-  };
-unsigned int output_get_enabled_types (void);
-void output_set_enabled_types (unsigned int);
-void output_set_type_enabled (bool enable, enum output_device_type);
+void output_log (const char *, ...) PRINTF_FORMAT (1, 2);
+void output_log_nocopy (char *);
+
+const char *output_get_title (void);
+void output_set_title (const char *);
+const char *output_get_subtitle (void);
+void output_set_subtitle (const char *);
+void output_set_filename (const char *);
+
+const char *output_get_command_name (void);
+char *output_get_uppercase_command_name (void);
+
+size_t output_open_group (struct output_item *);
+void output_close_groups (size_t nesting_level);
+
+void output_driver_parse_option (const char *option,
+                                 struct string_map *options);
+struct output_driver *output_driver_create (struct string_map *options);
+bool output_driver_is_registered (const struct output_driver *);
+
+void output_driver_register (struct output_driver *);
+void output_driver_unregister (struct output_driver *);
+
+void output_set_page_setup (const struct page_setup *);
 
 #endif /* output/driver.h */