#include "PrintTransportAddOn.h"
static BDataIO* gTransport = NULL;
extern "C" _EXPORT BDataIO *init_transport(BMessage *msg)
{
if (msg == NULL || gTransport != NULL)
return NULL;
const char *spool_path = msg->FindString("printer_file");
if (spool_path && *spool_path != '\0') {
BDirectory printer(spool_path);
if (printer.InitCheck() == B_OK) {
gTransport = instantiate_transport(&printer, msg);
return gTransport;
};
};
return NULL;
}
extern "C" _EXPORT void exit_transport()
{
if (gTransport) {
delete gTransport;
gTransport = NULL;
}
}