[mapguide-users] ByteReader Problem

Campbell, Keith A keith.campbell at atkinsglobal.com
Mon Sep 3 08:25:02 EDT 2007


I'm using 1.1.0, so maybe that is where the problem is.

________________________________

From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Kenneth,
GEOGRAF A/S
Sent: 03 September 2007 12:48
To: MapGuide Users Mail List
Subject: Re: [mapguide-users] ByteReader Problem


Very odd.

I have been using this code to read data from the server:

XmlDocument doc = new XmlDocument();
{   
    MgByteReader rd = rs.GetResourceContent(new
MgResourceIdentifier(webLayout));
    using(System.IO.MemoryStream ms = new System.IO.MemoryStream())
    {
        byte[] buf = new byte[1024];
        int c = 0;
        do
        {
            c = rd.Read(buf, buf.Length);
            ms.Write(buf, 0, c);
        } while (c != 0);
        ms.Position = 0;
        doc.Load(ms);
    }
}

It worked the last time I used it, but that was a while ago (around 1.2
beta 1, I think).


Regards, Kenneth, GEOGRAF A/S


Campbell, Keith A skrev: 

	Kenneth,
	 
	If I run this code, it results in an endless loop because the 
	    read = mapByteRdr.Read(buf, buf.length);
	call reads the same data each time - the start point for each
read is not advanced.
	 
	Keith

________________________________

	From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Kenneth,
GEOGRAF A/S
	Sent: 31 August 2007 17:14
	To: MapGuide Users Mail List
	Subject: Re: [mapguide-users] ByteReader Problem
	
	
	The only way around it, that I have found, is to copy/paste code
like this:
	
	System.IO.MemoryStream ms = new System.IO.MemoryStream();
	byte[] buf = new byte[8*1024];
	int read = 1;
	while(read != 0)
	{
	    read = mapByteRdr.Read(buf, buf.length);
	  ms.Write(buf, 0, read);
	}
	
	//ms now contains the stream
	
	
	Regards, Kenneth, GEOGRAF A/S
	  


	Campbell, Keith A skrev: 

		Thanks Dennis.
		 
		I've tried this, but I'm only getting 8192 bytes read
into the byte buffer. This seems to be the problem mentioned by Kenneth.
The Read method doesn't seem to allow the start location for the read to
be set, so looping until the entire content of the Resource is read into
the buffer doesn't seem to be an option.
		 
		Presumably somebody must have found a way around this.
		 
		Keith

________________________________

		From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Jonio,
Dennis (Aviation)
		Sent: 31 August 2007 14:05
		To: MapGuide Users Mail List
		Subject: RE: [mapguide-users] ByteReader Problem
		
		

		... this sequence tends to work     

		 

		     // For some reason the MgByteReader "disappears"

		     // This seems to work ....

		            long long_length =
rs.GetResourceContent(resId).GetLength();

		            byte[] byteBuffer = new byte[long_length];

		            int numBytes =
rs.GetResourceContent(resId).Read(byteBuffer, (int)long_length);

		 

		-----Original Message-----
		From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Campbell,
Keith A
		Sent: Friday, August 31, 2007 7:10 AM
		To: MapGuide Users Mail List
		Subject: [mapguide-users] ByteReader Problem

		 

		I am trying to alter a map definition through the API
and cannot get the contents of the MgByteReader in string format. Here's
the code:-

		            String mapDefinition = "Library://My
Folder/Maps/My Map.MapDefinition"; 
		            MgResourceIdentifier MapResID = new
MgResourceIdentifier(mapDefinition); 

		            MgByteReader mapByteRdr =
res.GetResourceContent(MapResID);//res is instantiated Resource Service.


		            XmlDocument doc = new XmlDocument(); 
		            
		            doc.LoadXml(mapByteRdr.ToString()); 

		LoadXML fails with an error ' Root element is missing'.
I can copy the contents of mapByteRdr from Visual Studio at runtime and
it contains properly formatted XML for the map definition. If I use the
ToFile() method, the resultant file is empty. I cannot see why these two
methods do not return the xml string in the reader. Any help is welcome.

		Cheers, 

		Keith 

		 

		This email and any attached files are confidential and
copyright protected. If you are not the addressee, any dissemination of
this communication is strictly prohibited. Unless otherwise expressly
agreed in writing, nothing stated in this communication shall be legally
binding. 

		The ultimate parent company of the Atkins Group is WS
Atkins plc. Registered in England No. 1885586. Registered Office
Woodcote Grove, Ashley Road, Epsom, Surrey KT18 5BW. 

		P Consider the environment. Please don't print this
e-mail unless you really need to. 

		
________________________________


		E-mails are automatically scanned for viruses using
McAfee. 



		This message has been scanned for viruses by MailControl
<http://bluepages.wsatkins.co.uk/?6875772> 



		This email and any attached files are confidential and
copyright protected. If you are not the addressee, any dissemination of
this communication is strictly prohibited. Unless otherwise expressly
agreed in writing, nothing stated in this communication shall be legally
binding. 

		The ultimate parent company of the Atkins Group is WS
Atkins plc. Registered in England No. 1885586. Registered Office
Woodcote Grove, Ashley Road, Epsom, Surrey KT18 5BW. 

		P Consider the environment. Please don't print this
e-mail unless you really need to. 

		
________________________________


		_______________________________________________
		mapguide-users mailing list
		mapguide-users at lists.osgeo.org
		http://lists.osgeo.org/mailman/listinfo/mapguide-users
		  

	
________________________________


	_______________________________________________
	mapguide-users mailing list
	mapguide-users at lists.osgeo.org
	http://lists.osgeo.org/mailman/listinfo/mapguide-users
	  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20070903/55b31f9b/attachment.html


More information about the mapguide-users mailing list