1#include "PrintTransportAddOn.h"
2
3// We don't support multiple instances of the same transport add-on
4static BDataIO* gTransport = NULL;
5
6extern "C" _EXPORT BDataIO *init_transport(BMessage *msg)
7{
8	if (msg == NULL || gTransport != NULL)
9		return NULL;
10
11	const char *spool_path = msg->FindString("printer_file");
12
13	if (spool_path && *spool_path != '\0') {
14		BDirectory printer(spool_path);
15
16		if (printer.InitCheck() == B_OK) {
17			gTransport = instantiate_transport(&printer, msg);
18			return gTransport;
19		};
20	};
21
22	return NULL;
23}
24
25extern "C" _EXPORT void exit_transport()
26{
27	if (gTransport) {
28		delete gTransport;
29		gTransport = NULL;
30	}
31}
32
33