haiku/src/servers/print/Transport.h

55 lines
1.1 KiB
C++

/*
* Copyright 2008, Haiku. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Ithamar R. Adema
*/
#ifndef TRANSPORT_H
#define TRANSPORT_H
class Transport;
#include <FindDirectory.h>
#include <Handler.h>
#include <String.h>
#include <Path.h>
#include <ObjectList.h>
class Transport : public BHandler
{
typedef BHandler Inherited;
public:
Transport(const BPath& path);
~Transport();
BString Name() const { return fPath.Leaf(); }
status_t ListAvailablePorts(BMessage* msg);
static status_t Scan(directory_which which);
static Transport* Find(const BString& name);
static void Remove(Transport* transport);
static Transport* At(int32 idx);
static int32 CountTransports();
void MessageReceived(BMessage* msg);
// Scripting support, see Printer.Scripting.cpp
status_t GetSupportedSuites(BMessage* msg);
void HandleScriptingCommand(BMessage* msg);
BHandler* ResolveSpecifier(BMessage* msg, int32 index, BMessage* spec,
int32 form, const char* prop);
private:
BPath fPath;
long fImageID;
int fFeatures;
static BObjectList<Transport> sTransports;
};
#endif