Rename print_transport.cpp to <addon transport class>.cpp.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8551 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Houdoin
2004-08-11 08:56:02 +00:00
parent 8473eaa54c
commit 5b97efc5d8
3 changed files with 58 additions and 52 deletions
@@ -37,21 +37,22 @@
#include "PrintTransportAddOn.h" #include "PrintTransportAddOn.h"
class ParallelPort : public BDataIO { class ParallelTransport : public BDataIO {
int fFile;
public: public:
ParallelPort(BDirectory* printer, BMessage* msg); ParallelTransport(BDirectory* printer, BMessage* msg);
~ParallelPort(); ~ParallelTransport();
status_t InitCheck() { return fFile > -1 ? B_OK : B_ERROR; } status_t InitCheck() { return fFile > -1 ? B_OK : B_ERROR; }
ssize_t Read(void* buffer, size_t size); ssize_t Read(void* buffer, size_t size);
ssize_t Write(const void* buffer, size_t size); ssize_t Write(const void* buffer, size_t size);
private:
int fFile;
}; };
// Impelmentation of ParallelPort // Implementation of ParallelTransport
ParallelPort::ParallelPort(BDirectory* printer, BMessage* msg) ParallelTransport::ParallelTransport(BDirectory* printer, BMessage* msg)
: fFile(-1) : fFile(-1)
{ {
char address[80]; char address[80];
@@ -77,32 +78,33 @@ ParallelPort::ParallelPort(BDirectory* printer, BMessage* msg)
// Caller don't care about transport init message output content... // Caller don't care about transport init message output content...
return; return;
msg->what = 'okok';
msg->AddBool("bidirectional", bidirectional); msg->AddBool("bidirectional", bidirectional);
msg->AddString("_parallel/DeviceName", device); msg->AddString("_parallel/DeviceName", device);
} }
ParallelPort::~ParallelPort() { ParallelTransport::~ParallelTransport()
if (InitCheck() == B_OK) { {
if (InitCheck() == B_OK)
close(fFile); close(fFile);
fFile = -1;
}
} }
ssize_t ParallelPort::Read(void* buffer, size_t size) { ssize_t ParallelTransport::Read(void* buffer, size_t size)
{
return read(fFile, buffer, size); return read(fFile, buffer, size);
} }
ssize_t ParallelPort::Write(const void* buffer, size_t size) { ssize_t ParallelTransport::Write(const void* buffer, size_t size)
{
return write(fFile, buffer, size); return write(fFile, buffer, size);
} }
BDataIO* instanciate_transport(BDirectory* printer, BMessage* msg) { BDataIO* instanciate_transport(BDirectory* printer, BMessage* msg)
ParallelPort* transport = new ParallelPort(printer, msg); {
if (transport->InitCheck() == B_OK) { ParallelTransport* transport = new ParallelTransport(printer, msg);
if (msg) if (transport->InitCheck() == B_OK)
msg->what = 'okok';
return transport; return transport;
} else {
delete transport; return NULL; delete transport;
} return NULL;
} }
@@ -37,21 +37,22 @@
#include "PrintTransportAddOn.h" #include "PrintTransportAddOn.h"
class SerialPort : public BDataIO { class SerialTransport : public BDataIO {
int fFile;
public: public:
SerialPort(BDirectory* printer, BMessage* msg); SerialTransport(BDirectory* printer, BMessage* msg);
~SerialPort(); ~SerialTransport();
status_t InitCheck() { return fFile > -1 ? B_OK : B_ERROR; } status_t InitCheck() { return fFile > -1 ? B_OK : B_ERROR; }
ssize_t Read(void* buffer, size_t size); ssize_t Read(void* buffer, size_t size);
ssize_t Write(const void* buffer, size_t size); ssize_t Write(const void* buffer, size_t size);
private:
int fFile;
}; };
// Impelmentation of SerialPort // Impelmentation of SerialTransport
SerialPort::SerialPort(BDirectory* printer, BMessage* msg) SerialTransport::SerialTransport(BDirectory* printer, BMessage* msg)
: fFile(-1) : fFile(-1)
{ {
char address[80]; char address[80];
@@ -77,32 +78,34 @@ SerialPort::SerialPort(BDirectory* printer, BMessage* msg)
// Caller don't care about transport init message output content... // Caller don't care about transport init message output content...
return; return;
msg->what = 'okok';
msg->AddBool("bidirectional", bidirectional); msg->AddBool("bidirectional", bidirectional);
msg->AddString("_serial/DeviceName", device); msg->AddString("_serial/DeviceName", device);
} }
SerialPort::~SerialPort() { SerialTransport::~SerialTransport()
if (InitCheck() == B_OK) { {
close(fFile); fFile = -1; if (InitCheck() == B_OK)
} close(fFile);
} }
ssize_t SerialPort::Read(void* buffer, size_t size) { ssize_t SerialTransport::Read(void* buffer, size_t size)
{
return read(fFile, buffer, size); return read(fFile, buffer, size);
} }
ssize_t SerialPort::Write(const void* buffer, size_t size) { ssize_t SerialTransport::Write(const void* buffer, size_t size)
{
return write(fFile, buffer, size); return write(fFile, buffer, size);
} }
BDataIO* instanciate_transport(BDirectory* printer, BMessage* msg) { BDataIO* instanciate_transport(BDirectory* printer, BMessage* msg)
SerialPort* transport = new SerialPort(printer, msg); {
if (transport->InitCheck() == B_OK) { SerialTransport* transport = new SerialTransport(printer, msg);
if (msg) if (transport->InitCheck() == B_OK)
msg->what = 'okok';
return transport; return transport;
} else {
delete transport; return NULL; delete transport;
} return NULL;
} }
@@ -1,5 +1,5 @@
/*****************************************************************************/ /*****************************************************************************/
// Usb port transport add-on, // USB port transport add-on,
// changes by Andreas Benzler, Philippe Houdoin // changes by Andreas Benzler, Philippe Houdoin
// //
// Original from Parallel // Original from Parallel
@@ -45,11 +45,12 @@
#include "PrintTransportAddOn.h" #include "PrintTransportAddOn.h"
class UsbPort : public BDataIO
class USBTransport : public BDataIO
{ {
public: public:
UsbPort(BDirectory *printer, BMessage *msg); USBTransport(BDirectory *printer, BMessage *msg);
~UsbPort(); ~USBTransport();
status_t InitCheck() { return fFile > -1 ? B_OK : B_ERROR; }; status_t InitCheck() { return fFile > -1 ? B_OK : B_ERROR; };
@@ -66,7 +67,7 @@ private:
BDataIO * BDataIO *
instanciate_transport(BDirectory *printer, BMessage *msg) instanciate_transport(BDirectory *printer, BMessage *msg)
{ {
UsbPort * transport = new UsbPort(printer, msg); USBTransport * transport = new USBTransport(printer, msg);
if (transport->InitCheck() == B_OK) if (transport->InitCheck() == B_OK)
return transport; return transport;
@@ -75,9 +76,9 @@ instanciate_transport(BDirectory *printer, BMessage *msg)
} }
// Implementation of UsbPort // Implementation of USBTransport
UsbPort::UsbPort(BDirectory *printer, BMessage *msg) USBTransport::USBTransport(BDirectory *printer, BMessage *msg)
: fFile(-1) : fFile(-1)
{ {
char device_id[USB_PRINTER_DEVICE_ID_LENGTH + 1]; char device_id[USB_PRINTER_DEVICE_ID_LENGTH + 1];
@@ -132,7 +133,7 @@ UsbPort::UsbPort(BDirectory *printer, BMessage *msg)
} }
UsbPort::~UsbPort() USBTransport::~USBTransport()
{ {
if (fFile > -1) if (fFile > -1)
close(fFile); close(fFile);
@@ -140,14 +141,14 @@ UsbPort::~UsbPort()
ssize_t ssize_t
UsbPort::Read(void *buffer, size_t size) USBTransport::Read(void *buffer, size_t size)
{ {
return read(fFile, buffer, size); return read(fFile, buffer, size);
} }
ssize_t ssize_t
UsbPort::Write(const void *buffer, size_t size) USBTransport::Write(const void *buffer, size_t size)
{ {
return write(fFile, buffer, size); return write(fFile, buffer, size);
} }