Loading a mapfile from a string...
Sean Gillies
sgillies at FRII.COM
Fri Apr 27 11:20:10 EDT 2007
Steve,
I'm fine with a requirement for modern flex. Maybe we could take
advantage of the svn post-commit hooks to make mapparser.c and
maplexer.c whenever the ultimate source changes. That would allow
windows folks (bless their hearts) to experiment with the trunk.
Isn't there also a msLoadLayerString too? What would you think about an
abstract factory function in mapscript that returned an object
corresponding to the block you pass in?
map = mapscript.load("MAP ... END") # returns mapObj
layer = mapscript.load("LAYER ... END") # returns layerObj
Sean
Steve Lime wrote:
> Only one comment (and positive at that) so... this has been commited. One =
> caveat is that to avoid leaking memory yylex_destroy is being used to =
> clean things up. Apparently this is available in newer versions of flex. =
> May actually be there in old versions but only if a reentrant scanner is =
> being built. Presents a small problem. We can control the distributions by =
> using a newish version of flex when building things for users. Requiring =
> developers to use version x.x.x (I'm at 2.5.31) doesn't seem to big a =
> hardship. Thoughts?
>
> Steve
>
>>>> Steve Lime <Steve.Lime at DNR.STATE.MN.US> 04/17/07 11:28 PM >>>
> Hi Folks: I've been screwing around with getting mapserver to ingest a =
> mapfile stored in a string buffer rather than a file. In theory you could =
> build up a configuration from text snippets or database output rather than =
> manipulating objects directly. The code could almost do this in the past =
> but needed some reorganization to re-use as much as possible. The result =
> is a new function called msLoadMapFromString. I took the opportunity to =
> fix some naming wierdness in mapfile.c and to clean up lexer initialization=
> a bit. In otherwords I'm sitting on a fair number of minor changes to =
> mapfile.c and maplexer.l (with a few other small edits elsewhere). Is this =
> a big enough deal to warrant a RFC or can I just commit?
>
> Steve
>
> BTW A sample perl snippet might look like (mapscript integration isn't =
> part of these changes other than exposing the function):
>
> $buffer =3D "MAP ... END";
> $map =3D $mapscript::msLoadMapFromString($buffer, undef); # takes the =
> buffer and an optional directory (location of symbols...)
>
More information about the mapserver-dev
mailing list