1
0
mirror of https://github.com/wfjm/w11.git synced 2026-01-24 20:01:19 +00:00

ensure that defaulted scheme visible in displayed open urls

- pass default scheme to RparseUrl in Open()
- add Open() overloads for Rw11VirtDiskFile and Rw11VirtDiskOver
This commit is contained in:
Walter F.J. Mueller 2017-04-16 15:12:20 +02:00
parent 3e6b02f9cf
commit 8b97e62314
14 changed files with 64 additions and 43 deletions

View File

@ -1,4 +1,4 @@
// $Id: RlinkPortCuff.cpp 858 2017-03-05 17:41:37Z mueller $
// $Id: RlinkPortCuff.cpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2012-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.1.5 Open(): set default scheme
// 2017-03-04 858 1.1.4 use clock_gettime instead of gettimeofday
// 2015-04-12 666 1.1.3 add noinit attribute
// 2014-08-22 584 1.1.2 use nullptr
@ -26,7 +27,7 @@
/*!
\file
\version $Id: RlinkPortCuff.cpp 858 2017-03-05 17:41:37Z mueller $
\version $Id: RlinkPortCuff.cpp 875 2017-04-15 21:58:50Z mueller $
\brief Implemenation of RlinkPortCuff.
*/
@ -98,7 +99,7 @@ bool RlinkPortCuff::Open(const std::string& url, RerrMsg& emsg)
if (IsOpen()) Close();
if (!fUrl.Set(url, "|trace|noinit|", emsg)) return false;
if (!fUrl.Set(url, "|trace|noinit|", "cuff", emsg)) return false;
// initialize USB context
irc = libusb_init(&fpUsbContext);

View File

@ -1,6 +1,6 @@
// $Id: RlinkPortFifo.cpp 666 2015-04-12 21:17:54Z mueller $
// $Id: RlinkPortFifo.cpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2011-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2011-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
// This program is free software; you may redistribute and/or modify it under
// the terms of the GNU General Public License as published by the Free
@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.2.1 Open(): set default scheme
// 2015-04-12 666 1.2 add xon,noinit attributes
// 2013-02-23 492 1.1 use RparseUrl
// 2011-03-27 374 1.0 Initial version
@ -21,7 +22,7 @@
/*!
\file
\version $Id: RlinkPortFifo.cpp 666 2015-04-12 21:17:54Z mueller $
\version $Id: RlinkPortFifo.cpp 875 2017-04-15 21:58:50Z mueller $
\brief Implemenation of RlinkPortFifo.
*/
@ -65,7 +66,7 @@ bool RlinkPortFifo::Open(const std::string& url, RerrMsg& emsg)
{
if (IsOpen()) Close();
if (!fUrl.Set(url, "|keep|xon|noinit|", emsg)) return false;
if (!fUrl.Set(url, "|keep|xon|noinit|", "fifo", emsg)) return false;
// Note: _rx fifo must be opened before the _tx fifo, otherwise the test
// bench might close with EOF on read prematurely (is a race condition).

View File

@ -1,4 +1,4 @@
// $Id: RlinkPortTerm.cpp 868 2017-04-07 20:09:33Z mueller $
// $Id: RlinkPortTerm.cpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2011-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.3.2 Open(): set default scheme
// 2017-04-07 868 1.3.1 Dump(): add detail arg
// 2015-04-12 666 1.3 drop xon/xoff excaping; add noinit attribute
// 2015-02-01 641 1.2 support custom baud rates (5M,6M,10M,12M)
@ -28,7 +29,7 @@
/*!
\file
\version $Id: RlinkPortTerm.cpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: RlinkPortTerm.cpp 875 2017-04-15 21:58:50Z mueller $
\brief Implemenation of RlinkPortTerm.
*/
@ -83,7 +84,7 @@ bool RlinkPortTerm::Open(const std::string& url, RerrMsg& emsg)
{
Close();
if (!fUrl.Set(url, "|baud=|break|cts|xon|noinit|", emsg)) return false;
if (!fUrl.Set(url, "|baud=|break|cts|xon|noinit|", "term", emsg)) return false;
// if path doesn't start with a '/' prepend a '/dev/tty'
if (fUrl.Path().substr(0,1) != "/") {

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtDiskFile.cpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtDiskFile.cpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.1.2 Open(): add overload with scheme handling
// 2017-04-07 868 1.1.1 Dump(): add detail arg
// 2017-03-11 859 1.1 use fWProt
// 2013-04-14 506 1.0 Initial version
@ -21,7 +22,7 @@
/*!
\file
\version $Id: Rw11VirtDiskFile.cpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtDiskFile.cpp 875 2017-04-15 21:58:50Z mueller $
\brief Implemenation of Rw11VirtDiskFile.
*/
@ -65,7 +66,16 @@ Rw11VirtDiskFile::~Rw11VirtDiskFile()
bool Rw11VirtDiskFile::Open(const std::string& url, RerrMsg& emsg)
{
if (!fUrl.Set(url, "|wpro|", emsg)) return false;
return Open(url, "file", emsg);
}
//------------------------------------------+-----------------------------------
//! FIXME_docs
bool Rw11VirtDiskFile::Open(const std::string& url, const std::string& scheme,
RerrMsg& emsg)
{
if (!fUrl.Set(url, "|wpro|", scheme, emsg)) return false;
fWProt = fUrl.FindOpt("wpro");

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtDiskFile.hpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtDiskFile.hpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.0.2 Open(): add overload with scheme handling
// 2017-04-07 868 1.0.1 Dump(): add detail arg
// 2013-04-14 506 1.0 Initial version
// 2013-02-13 488 0.1 First draft
@ -21,7 +22,7 @@
/*!
\file
\version $Id: Rw11VirtDiskFile.hpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtDiskFile.hpp 875 2017-04-15 21:58:50Z mueller $
\brief Declaration of class Rw11VirtDiskFile.
*/
@ -38,7 +39,9 @@ namespace Retro {
explicit Rw11VirtDiskFile(Rw11Unit* punit);
~Rw11VirtDiskFile();
bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Open(const std::string& url, RerrMsg& emsg);
bool Open(const std::string& url, const std::string& scheme,
RerrMsg& emsg);
virtual bool Read(size_t lba, size_t nblk, uint8_t* data,
RerrMsg& emsg);

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtDiskOver.cpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtDiskOver.cpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2017- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -13,13 +13,14 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.0.2 Open(): use overload with scheme handling
// 2017-04-07 868 1.0.1 Dump(): add detail arg
// 2017-03-10 859 1.0 Initial version
// ---------------------------------------------------------------------------
/*!
\file
\version $Id: Rw11VirtDiskOver.cpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtDiskOver.cpp 875 2017-04-15 21:58:50Z mueller $
\brief Implemenation of Rw11VirtDiskOver.
*/
@ -72,8 +73,7 @@ bool Rw11VirtDiskOver::WProt() const
bool Rw11VirtDiskOver::Open(const std::string& url, RerrMsg& emsg)
{
// FIXME_code: do we need to handle wpro ?
// FIXME_code: at this point assume that parent ignore proto
return Rw11VirtDiskFile::Open(url, emsg);
return Rw11VirtDiskFile::Open(url, "over", emsg);
}
//------------------------------------------+-----------------------------------

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtDiskOver.hpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtDiskOver.hpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2017- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -20,7 +20,7 @@
/*!
\file
\version $Id: Rw11VirtDiskOver.hpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtDiskOver.hpp 875 2017-04-15 21:58:50Z mueller $
\brief Declaration of class Rw11VirtDiskOver.
*/
@ -48,7 +48,7 @@ namespace Retro {
virtual bool WProt() const;
bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Read(size_t lba, size_t nblk, uint8_t* data,
RerrMsg& emsg);

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtStream.hpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtStream.hpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -20,7 +20,7 @@
/*!
\file
\version $Id: Rw11VirtStream.hpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtStream.hpp 875 2017-04-15 21:58:50Z mueller $
\brief Declaration of class Rw11VirtStream.
*/
@ -39,7 +39,7 @@ namespace Retro {
explicit Rw11VirtStream(Rw11Unit* punit);
~Rw11VirtStream();
bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Open(const std::string& url, RerrMsg& emsg);
int Read(uint8_t* data, size_t count, RerrMsg& emsg);
bool Write(const uint8_t* data, size_t count, RerrMsg& emsg);
bool Flush(RerrMsg& emsg);

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtTapeTap.cpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtTapeTap.cpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2015-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.0.2 Open(): set default scheme
// 2017-04-07 868 1.0.1 Dump(): add detail arg
// 2015-06-04 686 1.0 Initial version
// 2015-05-17 683 0.1 First draft
@ -20,7 +21,7 @@
/*!
\file
\version $Id: Rw11VirtTapeTap.cpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtTapeTap.cpp 875 2017-04-15 21:58:50Z mueller $
\brief Implemenation of Rw11VirtTapeTap.
*/
@ -79,7 +80,7 @@ Rw11VirtTapeTap::~Rw11VirtTapeTap()
bool Rw11VirtTapeTap::Open(const std::string& url, RerrMsg& emsg)
{
if (!fUrl.Set(url, "|wpro|e11|cap=|", emsg)) return false;
if (!fUrl.Set(url, "|wpro|e11|cap=|", "tap", emsg)) return false;
fWProt = fUrl.FindOpt("wpro");
fPadOdd = fUrl.FindOpt("e11");

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtTapeTap.hpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtTapeTap.hpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2015-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -21,7 +21,7 @@
/*!
\file
\version $Id: Rw11VirtTapeTap.hpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtTapeTap.hpp 875 2017-04-15 21:58:50Z mueller $
\brief Declaration of class Rw11VirtTapeTap.
*/
@ -38,7 +38,7 @@ namespace Retro {
explicit Rw11VirtTapeTap(Rw11Unit* punit);
~Rw11VirtTapeTap();
bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Open(const std::string& url, RerrMsg& emsg);
virtual bool ReadRecord(size_t nbyt, uint8_t* data, size_t& ndone,
int& opcode, RerrMsg& emsg);

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtTermPty.cpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtTermPty.cpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.0.2 Open(): set default scheme
// 2017-04-07 868 1.0.1 Dump(): add detail arg
// 2013-03-06 495 1.0 Initial version
// 2013-02-24 492 0.1 First draft
@ -20,7 +21,7 @@
/*!
\file
\version $Id: Rw11VirtTermPty.cpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtTermPty.cpp 875 2017-04-15 21:58:50Z mueller $
\brief Implemenation of Rw11VirtTermPty.
*/
#define _XOPEN_SOURCE 600
@ -69,6 +70,8 @@ Rw11VirtTermPty::~Rw11VirtTermPty()
bool Rw11VirtTermPty::Open(const std::string& url, RerrMsg& emsg)
{
if (!fUrl.Set(url, "", "pty", emsg)) return false;
int fd = posix_openpt(O_RDWR);
if (fd < 0) {
emsg.InitErrno("Rw11VirtTermPty::Open", "posix_openpt() failed: ", errno);

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtTermPty.hpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtTermPty.hpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -21,7 +21,7 @@
/*!
\file
\version $Id: Rw11VirtTermPty.hpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtTermPty.hpp 875 2017-04-15 21:58:50Z mueller $
\brief Declaration of class Rw11VirtTermPty.
*/
@ -40,7 +40,7 @@ namespace Retro {
explicit Rw11VirtTermPty(Rw11Unit* punit);
~Rw11VirtTermPty();
bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Snd(const uint8_t* data, size_t count, RerrMsg& emsg);

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtTermTcp.cpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtTermTcp.cpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -13,6 +13,7 @@
//
// Revision History:
// Date Rev Version Comment
// 2017-04-15 875 1.0.6 Open(): set default scheme
// 2017-04-07 868 1.0.5 Dump(): add detail arg
// 2014-08-22 584 1.0.4 use nullptr
// 2013-05-17 512 1.0.3 use Rtools::String2Long
@ -24,7 +25,7 @@
/*!
\file
\version $Id: Rw11VirtTermTcp.cpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtTermTcp.cpp 875 2017-04-15 21:58:50Z mueller $
\brief Implemenation of Rw11VirtTermTcp.
*/
@ -118,7 +119,7 @@ Rw11VirtTermTcp::~Rw11VirtTermTcp()
bool Rw11VirtTermTcp::Open(const std::string& url, RerrMsg& emsg)
{
if (!fUrl.Set(url, "|port=|trace|", emsg)) return false;
if (!fUrl.Set(url, "|port=|trace|", "tcp", emsg)) return false;
if (!(fUrl.FindOpt("port"))) {
emsg.Init("Rw11VirtTermTcp::Open", "port= option not specified");
return false;

View File

@ -1,4 +1,4 @@
// $Id: Rw11VirtTermTcp.hpp 868 2017-04-07 20:09:33Z mueller $
// $Id: Rw11VirtTermTcp.hpp 875 2017-04-15 21:58:50Z mueller $
//
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
@ -22,7 +22,7 @@
/*!
\file
\version $Id: Rw11VirtTermTcp.hpp 868 2017-04-07 20:09:33Z mueller $
\version $Id: Rw11VirtTermTcp.hpp 875 2017-04-15 21:58:50Z mueller $
\brief Declaration of class Rw11VirtTermTcp.
*/
@ -41,7 +41,7 @@ namespace Retro {
explicit Rw11VirtTermTcp(Rw11Unit* punit);
~Rw11VirtTermTcp();
bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Open(const std::string& url, RerrMsg& emsg);
virtual bool Snd(const uint8_t* data, size_t count, RerrMsg& emsg);