Mapserver Plug-in Infastructure: RFC and PATCH

Steve Lime steve.lime at DNR.STATE.MN.US
Fri Aug 19 13:44:20 EDT 2005

Jani: I think I understand what you've done- thanks for all the hard work. Some of the most
technical folks, like everyone else but me, can help with more comments. What are some of
the benefits and costs associated with the approach? Simplification and extensibilty for sure,
any significant performance hit (I wouldn't think so, not relative to making a map)?

I like the idea of using the same approach for internal vs. external plugins. We'd have to take
some of the default shapefile code that lives in the switch statements and move to properly
named functions- no biggie, but just another thing to be done.

I dunno about mucking with the build process though which is convoluted enough. In theory 
you could have 2 Oracle Spatial  drivers available, one internal and one custom. Couldn't just 
different names be used for connection type (which is used as a lookup in the vtable)? 

Finally, there really should be a formal RFC (following the WKT format) for something of this


>>> Frank Warmerdam <fwarmerdam at GMAIL.COM> 08/17/05 9:31 PM >>>
On 8/17/05, Jani Averbach <javerbach at> wrote:
> Hello,
> This proposal (and patch) provides plug-in infrastructure for layers.
> The second phase could be that we remove all those switch
> statements and use this vtable also for internal layers.


I am supportive of your proposal, and would like to see the vtable
used for internal layers as well.  In fact, I think I would prefer to 
see it incorporated for existing layers types in the first implementation
rather than as a second pass. 

I see each "built-in" module such as mapsde.c providing a registration
function such as "msSDEInitializeLayerVirtualTable" so that none of
the layer type specific definitions need to appear in map.h any more.
As you note all the msLayer operations that are now switches, would
become simple calls into the vtable.  

We would likely need to modify the build structure so that problematic
layers types (like SDE, and Oracle) could be built as external plugins
instead of builtins. 

Best regards,
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at 
light and sound - activate the windows |
and watch the world go round - Rush    | Geospatial Programmer for Rent

More information about the mapserver-dev mailing list