You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "nadir amra (JIRA)" <ax...@ws.apache.org> on 2010/11/06 04:24:42 UTC

[jira] Closed: (AXISCPP-856) Add Platform Services Abstraction Layer

     [ https://issues.apache.org/jira/browse/AXISCPP-856?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

nadir amra closed AXISCPP-856.
------------------------------

    Resolution: Won't Fix

Given we are trying to stabilize the release such a major change will not be done.  

So closing the issue. 

> Add Platform Services Abstraction Layer
> ---------------------------------------
>
>                 Key: AXISCPP-856
>                 URL: https://issues.apache.org/jira/browse/AXISCPP-856
>             Project: Axis-C++
>          Issue Type: Improvement
>          Components: Basic Architecture
>         Environment: N/A
>            Reporter: nadir amra
>            Assignee: nadir amra
>
> I am creating this issue relating to something we talked about months ago in the mailing list - you can search on "Platform abstraction layer  thoughts" in the axis-c-dev mailing list.  To summarize and refine the discussion, the goal is to attempt to concentrate as much as  possible any platform differences in one area - code will be located in the platforms/ directory.  There occasionally will be times when this cannot be done, but hopefully those occasions will be few and any platform-specific code changes required outside of platforms/ directory will be minimal. 
> I have initially identified several areas that need to be abstracted:  DLL loading, mutex, socket, and obtaining OS errors.  There may be more (such as event log for FFDC kinds of stuff - on Unix maybe syslog() will be used, on windows to the event log), but that will be identified and done 
> later.
> The idea (still to be hashed out) is to have classes for the various platform-specific stuff.  The header files and default implementation would be in platforms/ directory as follows:
> platforms/AxisPsLibraryLoader.hpp 
> platforms/AxisPsLibraryLoader.cpp
> platforms/AxisPsMutex.hpp
> platforms/AxisPsMutex.cpp
> platforms/AxisPsSocket.hpp
> platforms/AxisPsSocket.cpp
> platforms/AxisPsOSError.hpp
> platforms/AxisPsOSError.cpp
> The default implementation of these classes will be patterned after Unix and packaged in a DLL/library called, for lack of a better name, axis_platformservices.   The AXIS engine will need to link to this DLL/library and thus it will need to be created first prior to creating any other DLLs/libraries.
> The implementation code for other platforms will be in each platform directory.  For example, OS/400 will need to have its own AxisPsLibraryLoader.cpp file so one will be located as follows:
> platforms/os400/AxisPsLibraryLoader.cpp
> When building the  axis_platformservices DLL/shared library, which files are build is dependent on the platform.  For example, OS/400 would build everything in platforms/os400/ and would also build 
> platforms/AxisPsMutex.cpp, platforms/AxisPsSocket.cpp and platforms/AxisPsOSError.cpp. 
> The platform abstraction layer a separate library that will be statically linked to other service programs.
> The abstraction layer can also be used for to possibly simplify tracing support.
> More details later.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: c-dev-help@axis.apache.org