/* * 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 #include #include #include #include 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 sTransports; }; #endif