Yep, your absolutely spot on. On z/OS the file path syntax determines the file system. For example the following C code detects the file system in a POSIX enviroment:
/* for a PDS data set */ fopen( "//'ZOS.PDS.DSN(REXX)'", ... ) /* for a UNIX file */ fopen( "/u/hfs/exec.rex", ... ) The // prefix signifies a z/OS file. So parsing the file path should be a snack! Thanks Rick, I think we have a solution. Does this mean changing the current design for SysFileSystem? Rick McGuire wrote: > Yep, that's correct. Although, there's nothing that says it is > necessarily a singleton. You might actually have multiple instances > active with the static method selecting the correct one to use based > on some criteria you define. > > Rick > > On Mon, Aug 11, 2008 at 10:46 AM, David Crayford <[EMAIL PROTECTED]> wrote: > >> ok, I think I get it. What you suggesting is an implementation that uses >> the singleton pattern delegated from the >> static methods already in place, right? >> >> Rick McGuire wrote: >> >>> Yes, but the class with the static methods is still the starting >>> point. Replaceable classes with static methods were chosen for these >>> interfaces because they allow an implementation a lot more flexibility >>> in how things get implemented, including the use of inline methods, if >>> appropriate. So, the z/OS version of SysFileSystem would probably >>> have methods that looked like this: >>> >>> bool SysFileSystem::searchFileName(const char *name, char *fullName) >>> { >>> return getInstance()->searchFileName(name, fullName); >>> } >>> >>> Where the instance returned would be a subclass of your base virtual >>> class. Then this is a matter of just adjusting the build to pick up >>> your version of SysFileSystem rather than the base unix one. >>> >>> Rick >>> >>> On Mon, Aug 11, 2008 at 10:19 AM, David Crayford <[EMAIL PROTECTED]> wrote: >>> >>> >>>> That's an excellent idea! Are you suggesting implementing the delegate >>>> design pattern? In which case >>>> an abstract base class of pure virtual functions (Java interface) would >>>> be required or implementing >>>> z/OS platform code to the source tree. >>>> >>>> Rick McGuire wrote: >>>> >>>> >>>>> I think the approach here would be to have the SysFileSystem class >>>>> remain the interface between the portable code and the platform, and >>>>> have its method delegate to a specific pluggable instance. >>>>> >>>>> Rick >>>>> >>>>> On Mon, Aug 11, 2008 at 9:59 AM, David Crayford <[EMAIL PROTECTED]> wrote: >>>>> >>>>> >>>>> >>>>>> ooRexx seems to only handle one type of file system based on the >>>>>> platform. On my system (z/OS) there are different file systems depending >>>>>> on the runtime environment. We have a UNIX file system and a traditional >>>>>> mainframe filesystem using PDS data sets. There is also a UNIX like file >>>>>> system in CICS. The SysFileSystem class is static, what I really need is >>>>>> a SysFileSystem factory or different builds depending on where I >>>>>> want to deploy. Any suggestions? I'm jumping the gun here a bit as I'm >>>>>> only just starting to code in anger, but it's a concern... >>>>>> >>>>>> ------------------------------------------------------------------------- >>>>>> This SF.Net email is sponsored by the Moblin Your Move Developer's >>>>>> challenge >>>>>> Build the coolest Linux based applications with Moblin SDK & win great >>>>>> prizes >>>>>> Grand prize is a trip for two to an Open Source event anywhere in the >>>>>> world >>>>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >>>>>> _______________________________________________ >>>>>> Oorexx-devel mailing list >>>>>> Oorexx-devel@lists.sourceforge.net >>>>>> https://lists.sourceforge.net/lists/listinfo/oorexx-devel >>>>>> >>>>>> >>>>>> >>>>>> >>>>> ------------------------------------------------------------------------- >>>>> This SF.Net email is sponsored by the Moblin Your Move Developer's >>>>> challenge >>>>> Build the coolest Linux based applications with Moblin SDK & win great >>>>> prizes >>>>> Grand prize is a trip for two to an Open Source event anywhere in the >>>>> world >>>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >>>>> _______________________________________________ >>>>> Oorexx-devel mailing list >>>>> Oorexx-devel@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/oorexx-devel >>>>> >>>>> >>>>> >>>>> >>>> ------------------------------------------------------------------------- >>>> This SF.Net email is sponsored by the Moblin Your Move Developer's >>>> challenge >>>> Build the coolest Linux based applications with Moblin SDK & win great >>>> prizes >>>> Grand prize is a trip for two to an Open Source event anywhere in the world >>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >>>> _______________________________________________ >>>> Oorexx-devel mailing list >>>> Oorexx-devel@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/oorexx-devel >>>> >>>> >>>> >>> ------------------------------------------------------------------------- >>> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >>> Build the coolest Linux based applications with Moblin SDK & win great >>> prizes >>> Grand prize is a trip for two to an Open Source event anywhere in the world >>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >>> _______________________________________________ >>> Oorexx-devel mailing list >>> Oorexx-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/oorexx-devel >>> >>> >>> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >> Build the coolest Linux based applications with Moblin SDK & win great prizes >> Grand prize is a trip for two to an Open Source event anywhere in the world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> Oorexx-devel mailing list >> Oorexx-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/oorexx-devel >> >> > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel