tsmApi Change Log
Tue Jul 30 14:50:09 2002 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmGeoVRML.c: add Mike McCann's changes for writing the GeoVRML
EXTERNPROTO URLs. Also fixed a bug that caused make_geovrml to
fail if no -touch option was given.
Thu Jul 18 09:50:15 2002 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmWriteRows.c: missing variable parameter in error printf()
2002-03-26 <Martin Reddy@HEATHER>
* tsmGeoVRML.c: convert all \% escape sequences to %% for all
printf style strings. MSVC warns that this is not recognized.
2002-03-17 <Martin Reddy@HEATHER>
* tsmWriteRows.c (tsmWriteRows_convertTileFormat): update the
check for a word overflow when downsampling from 32-bit to 16-bit
* tsmReadRowsRAW.c (tsmReadRowsRAW_new): check that the file is an
integral multiple of the specified pixel size. If not, issue a
warning message as this can corrupt the tile set.
2002-03-15 <Martin Reddy@HEATHER>
* tsmWriteRows.c (tsmWriteRows_new): initialize a variable to hold
the number of resampling overflows when converting from 32-bit ->
16-bit etc.
(tsmWriteRows_destroy): output a warning message if any resampling
errors occured during this pyramid creation process.
(tsmWriteRows_convertTileFormat): use PR_ntohl and friends to make
sure that we resample data correctly on little endian machines
such as Intels. Also record any occurences when we overflow during
a downsample of data values such as 32-bit to 16-bit.
* tsmWriteRowsPPM.c: removed - not used anywhere
* tsmWriteRowsPPM.h: removed - not used anywhere
2002-03-13 Lee Iverson <leei@ece.ubc.ca>
* tsmExtProts.h (tsmRequestNotifyCB): New definition. Type of
function to receive the tsmRequestNotifyReceive callback.
* tsmHost_web.c (tsmReaderThread_host): Grab requestLists
before reading tile and use that for notification.
* tsmRequest.c (struct tsmRequestList_): Use tsmRequestNotifyCB
(tsmRequestNotifyReceive): Use tsmRequestNotifyCB
(tsmRequestReceive): Deliver tile whether found in list or not.
Still remove it if found though.
* tsmRequest.h (tsmRequestReceive): Add new received argument.
* tsmRequestSrv.c (tsmReqReceivers): New. Returns a copy of the
current request list for a request.
(tsmReqServerQueueTile): Use reqLists argument to process tile.
Notify all request lists, not just those that still include it.
* tsmRequestSrv.h (tsmReqReceivers): New decl.
(tsmReqServerQueueTile): Add reqLists argument.
* tsmTile_local.c (tsmReaderThread_local): Grab requestLists
before reading tile and use that. Thus, it is the requestList
at the time we start to read that is used to communicate updates.
2002-03-11 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmReadRowsDEM.c: applied fix for DEM file reader, merged from
fix made to DEM2GeoEG utility
2002-02-15 Lee Iverson <leei@ece.ubc.ca>
* Makefile.in: Regen with automake 1.5
* aclocal.m4: Ditto
* config.h.in: Ditto
* config.guess, config.sub: Delete.
* configure.in: Find and use libpng library
* configure: Regen with autoconf 2.52
* tsmHost_web.c (tsmAddRequest_host): Add heap push tracing.
(tsmReaderThread_host): Only enable ghttp_debug for debug level 3.
Add heap push/pop tracing.
2002-01-27 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmGeoVRML.c: added recent updates from Mike McCann
2001-12-20 <Martin Reddy@HEATHER>
* tsmUtils.c (tsmStringCat): Concatenates a string onto the end of
a (possibly) existing string, growing the size of the original
string and returning its (potentially) new address as the
result
Mon Dec 17 11:05:44 2001 <reddy@MAGNOLIA>
* tsmImage.c (tsm_png_read): [new func] provides support for
reading PNG files in the tsmReadImage() function. This provides
support for PNG textures in VRML models within TerraVision.
Thu Dec 13 17:29:07 2001 <reddy@MAGNOLIA>
* tsmUrlToFile.c (tsmDoesUrlExist): updated to correctly deal with
local host URLs too.
Thu Dec 13 11:03:18 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmUrlToFile.c (tsmDoesUrlExist): create a convenience function
to tsmUrlExists without the http conn param.
Tue Nov 20 10:52:05 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmGeoVRML.c: include Mike McCann's edits to add gzipped support
for .wrl files (.wrz).
Mon Nov 12 11:50:15 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* TsTileSpecParse.c (tspParseTspecLine): parse out the sky,
two-sided, view-from-below, and origin-altitude entries from the
tspec file.
Fri Nov 9 11:49:38 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmGeoVRML.c: updated sources from Mike McCann to include the
specification of a max range for GeoTouchSensor LODs and some
minor bug fixes
Tue Oct 30 10:29:02 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmGeoVRML.h: Merge in updates from Mike McCann to add GeoOrigin
support to the GeoElevationGrids creation interface
* tsmGeoVRML.c: Merge in updates from Mike McCann of MBARI to
support GeoOrigin, a lat/long HUD display, and GeoTouchSensor
expansion of tiles.
Wed Sep 19 14:30:41 2001 <reddy@MAGNOLIA>
* tsmUtils.c (tsmSystem): new function - executes a command. Uses
system() under Unix and CreateProcess() under Windows.
(tsmShowUrl): if running under Windows, first try to run the
default web browser by doing a $COMSPEC /c start <url>
2001-08-16 Lee Iverson <leei@AI.SRI.COM>
* TsTileSpecDecs.x (struct CoordTspec): Add originAltitude.
(struct Pyramid): Add sky, twoSided, fromBelow.
* TsTileSpecDecs.h: Regen
* TsTileSpecDecs_xdr.c. Regen.
* TsTileSpecGen.c (tspCreatePyramid): Initialize new pyramid
fields from params.
* TsTileSpecIn.c (tspReadPyramidTspec1): Read new fields from
tspec.
(tspReadCoordTspec1): Read originAltitude value.
* TsTileSpecOut.c (tspSaveCoordTspec_fp): Write out
originAltitude.
(tspSavePyramidTspec_fp): Write out new fields.
* tsmCreate.h (struct TsmTspecParams): Add fields for altitude,
sky, two_sided, and view_from_below.
* tsmVRML.c (tsmWriteGeotile): Clean up unused variables.
2001-07-25 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmHost_web.c (tsmReaderThread_host): Actually retry requests up
to three times.
* tsmRequestSrv.c (tsmReqServerQueueTile): Consider a tile
received if *any* of the request lists successfully receive it.
Free tileHeader if tile was received.
Thu Jul 19 15:58:54 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmArg.c (tsmParseInitArgs): initialise the tracing settings
when a command line program uses -debug
* tsmTile_wms.c (tsmWMSReadNextTile): improved error messages from
a WMS tile failure. Now differentiates between a corrupt tile and
an unknown file format.
* tsmWMS.c (tsmWMSGetCapabilities): set the format ID
appropriately and favour using JPEG as the tile request format
instead of LRBT when talking to a Web Map Server.
* tsmWMS.h (TSM_WMS_FORMAT_JPEG): create a simple #define list for
the WMS format to be used for tile requests. This lets us easily
ascertain the format without doing a strcmp.
2001-07-19 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmTile.c (struct ReceiveClosure): Use unsigned bitfield for
status.
2001-07-12 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmRequest.c (tsmRequestSubmit): Clean up trace code.
(tsmRequestClaim): Empty readyList when making available.
(tsmRequestReceive): Expand trace verbosity.
* tsmRequestSrv.c (tsmReqElemReprioritize): Increase level of
tracing.
(tsmReqServerRescind): Improve tracing, including flagging all
branches of conditional.
(tsmReqServerSubmit): Improve tracing.
(tsmReqServerClaimList): Ditto.
Fri Jun 29 16:06:17 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmWMS.c (tsmWMSGetCapabilities): clean up the http connection
when done getting the Capabilities XML
2001-07-10 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmRequestSrv.c (tsmReqElemSetStatus): Bump up trace level to 2
(tsmReqElemAllocate): Fix typo - doh!
(tsmReqElemReprioritize): Bump up trace level of reconstruction to 3
Fix trace argument in reconstruction
(tsmReqServerSubmit): Show conn.generic in trace message.
* tsmTile_local.c (tsmAddRequest_local): Show conn.generic in
trace message.
2001-07-09 Lee Iverson <leei@canoe.ai.sri.com>
* tsmRequestSrv.c (tsmReqServerSubmit): Indent for tracing.
(tsmReqServerAssignRequests): Tag and indent for tracing.
* tsmTile_local.c (tsmAddRequest_local): Indent for tracing.
2001-07-09 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnectionInt.h (typedef ActualConnection): Remove.
(struct ActualConnection_): Remove.
* tsmHost_web.c (tsmRemoveRequest_host): Reset conn.generic
* tsmRequestSrv.c (tsmReqElemCreate): Initialize conn.generic.
(tsmReqElemReprioritize): Add better tracing.
(tsmReqServerRescind): Use conn.generic
(tsmReqServerSubmit): Show existing priority.
* tsmRequestSrv.h (struct tsmReqElem_): Delete conn.actual.
* tsmTile_local.c: Include <assert.h>
(tsmAddRequest_local): Consolidate with tsmAddRequestActual_local
(tsmRemoveRequest_local): Consolidate with
tsmRemoveRequestActual_local
(tsmReprioRequest_local): Consolidate with
tsmReprioRequestActual_local
* tsmConnect_dpss.h (struct TsmConnectionDpss): Replace aconn with
TsmConnectionCommon struct.
* tsmConnection_dpss.c (tsmDisconnect_dpss): Pass TsmConnection
(tsmBeginLogging_dpss): Ditto.
(tsmEndLogging_dpss): Ditto.
* tsmTile_dpss.c (tsmStartRequestThread_dpss): Cope with removed
ActualConnection.
* tsmTspec_dpss.c (tsmReadTspec_dpss): Cope with removed
ActualConnection.
(tsmWriteTspec_dpss): Ditto.
2001-07-09 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsm.h: Don't include (and thus expose) tsmWMS.h
* tsmConnectionParamsInt.h: Don't include tsmWMS.h since this has
too large a dependency footprint.
* tsmConnect_wms.h: Include tsmWMS.h here.
* tsmDatabase_wms.c: ... and here
* tsmHost_web.c: ... and here
* tsmTspec_wms.c: ... and here
* tsmWMS.c: ... and here
* tsmInternal.h (typedef tsmWMS): Forward decl for opaque refs.
* tsmWMS.h (struct tsmWMS_): Adapt to forward ref.
2001-07-08 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmTile.c (tsmAllocReadTile): More careful version of Martin's
patch of Mon Jun 25. We still need to ensure that we got the
correct notification and that we weren't interrupted.
Fri Jun 29 16:06:17 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTile_wms.c (tsmWMSReadNextTile): support reading JPEG tiles
in addition to raw format tiles
* tsmWMS.c (tsmWMSGetCapabilities): clean up the XML parse tree
when done
(tsmWMSGetCapabilities): look for a global SRS and global
ScaleHint tag and use this if a Layer does not define either. Then
try using the ScaleHint tag when the layer resolution is not
defined.
(tsmWMSAddLayer): remove new line characters from all layer
strings (esp. description) as these case our database parser
problems.
* tsmTspec_wms.c (tsmDoesTspecExist_wms): support both LAYERS= and
LAYER= for finding a dataset name in a WMS URL
(tsmReadTspec_wms): ditto
* tsmTile_wms.c (tsmWMSReadNextTile): extract layer name from a
URL using LAYERS= parameter, and then try LAYER=
* tsmWMS.c (tsmWMSDatasetUrl): parameter is LAYERS, not LAYER
Thu Jun 28 17:21:09 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* logging.c (NetLoggerWriteString): do a cast of a PRTime to long
to avoid gcc-dependent symbol under Solaris
Tue Jun 26 17:14:16 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTile.c (tsmAllocReadTile): add tile coordinate to error
messages for more easy debugging
Mon Jun 25 14:17:54 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmHost_web.c (tsmReaderThread_host): break out of inifinite
loop if a tile request returns TSM_NODATA
* tsmTile.c (tsmAllocReadTile): break out of PR_WaitCondVar loop
if the function returns PR_SUCCESS. Previously the value of
rcv.buf was used, which meant that the loop would hang if a NULL
tile buffer was returned (in the case of TSM_NODATA for instance)
* tsmTile_local.c (tsmReaderThread_local): break out of infinite
loop if a tile is requested but the data does not exist (i.e. when
a TSM_NODATA is returned).
* tsmTspec_wms.c (tsmReadTspec_wms): deal with fp rounding errors
when trying to compute a tileset's pixel width and height based
upon the geographic bbox and resolution returned by a WMS.
* tsmWMS.c (tsmWMSGetException): fix bug in locating the error
description tag in a WMS Service Exception XML.
Thu Jun 21 14:06:01 2001 <reddy@MAGNOLIA>
* tsmConnection_web.c (tsmConnect_web): only initialise the http
specific connection stuff if the common initialization succeeded.
* tsmConnection_dpss.c (tsmConnect_dpss): ditto
* tsmConnection_local.c (tsmConnect_local): ditto
* tsmConnection_wms.c (tsmConnect_wms): ditto
2001-06-20 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnection.c (tsmConnectCommon): Disconnect on failure.
(tsmDisconnectCommon): Don't free connect here.
* tsmConnection_local.c (tsmConnect_local): Immediately return if
tsmConnectCommon fails.
(tsmDisconnect_local): Free connection memory here.
* tsmConnection_web.c (tsmConnect_web): Immediately return if
tsmConnectCommon fails.
(tsmDisconnect_web): Free connection memory here.
* tsmConnection_wms.c (tsmConnect_wms): Immediately return if
tsmConnectCommon fails.
(tsmDisconnect_wms): Free connection memory here.
Wed Jun 20 15:42:17 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTile_wms.c: Add #include "tsmRequest.h"
* tsmTspec_wms.c: Add #include "tsmConnectionParamsInt.h"
* tsmConnection_wms.c: Add #include "tsmConnectionParamsInt.h"
Mon Jun 18 14:50:19 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmDatabase_local.c (tsmParseDatabaseLine): add parsing for the
new tilesize and overlap fields of the database
* tsmDatabase.c (tsmPrintDataSet): output the new tilesize and
overlap field values
(tsmUpdateDatabaseFromServerCB): read the tilesize and overlap
values from the dataset's tspec file and fill in the fields in the
TsmDataSet structure
* tsmDatabase.h: added tilesize and overlap fields to TsmDataSet
* tsmDatabase.c (tsmReadServer): add support for WMS protocol when
reading a terrain database
(tsmPrintDatabase): update the URL and formatting for the Dataset
Database
2001-06-17 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTspec.c (tsmReadTspec): call the tsmReadTspec_wms routine to
create a tspec on the fly for a Web Mapping Server dataset
* tsmPurl.c: if a URI has a question mark in it, then the protocol
is determined to be a Web Mapping Server
* tsmConnection.c (tsmConnect): do WMS-specific initialization if
the Purl is for a WMS URL
* tsmPurlDefns.x: added tsmWMS to the purl TsmProtocol enum
Fri Jun 15 10:09:38 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmConnectionParams.c (tsmSetParam): add TSM_PARAM_WMS support
* tsmConnectionParams.h (TSM_PARAM_WMS): add TSM_PARAM_WMS
connection parameter to specify a tsmWMS structure
* tsmConnection.h: add TSM_WMS to TsmConnectionType
2001-06-19 Lee Iverson <leei@canoe.ai.sri.com>
* tsmUrlToFile.c (tsmOpenStream): Instead of checking for "r",
check for the absence of 'w' character. This was breaking HTTP
FeatureTexLoad.
2001-06-19 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmHost_web.c: Include "tsmRequestSrv.h"
(tsmAddRequest_host): Register status change with tsmReqElemAllocate
(tsmReaderThread_host): Register status change with tsmReqElemReading
and tsmReqElemAllocate
(
* tsmInternal.h: Don't include "tsmConnectionInt.h" or
"tsmConnectionParamsInt.h"
(struct tsmRequestServer): Move typedef to here.
(struct tsmReqElem): Move typedef to here.
* tsmRequestSrv.c: Include "tsmConnectionInt.h"
(tsmReqElemSetStatus): New. Register and report a status change
for tsmTileReqElem.
(tsmReqElemAllocate): New. Register a chnage to reqAllocated.
(tsmReqElemReading): New. Register a change to reqReading.
(tsmReqElemUpdate): Change status with tsmReqElemSetStatus
(tsmReqElemCreate): Initialize idx.
(tsmReqServerQueueTile): Change status with tsmReqElemSetStatus
(tsmReqServerDequeueTile): Ditto.
* tsmRequestSrv.h (struct tsmRequestServer): Move typedef to
tsmInternal.h
(enum tsmReqStatus): Add reqReading and reqDelivered status.
(struct tsmReqElem): Move typedef to tsmInternal.h
(tsmReqElemAllocate): New decl.
(tsmReqElemReading): New decl.
* TsTileSpecUtils.c: Include "tsmConnectionInt.h"
* tsmArg.c: Include "tsmConnectionInt.h"
* tsmChecksum.c: Include "tsmConnectionInt.h"
* tsmConnect_dpss.h: Include "tsmConnectionInt.h"
* tsmConnect_local.h: Include "tsmConnectionInt.h"
* tsmConnect_web.h: Include "tsmConnectionInt.h"
* tsmConnection.c: Include "tsmConnectionInt.h"
Include "tsmConnectionParamsInt.h"
Include "tsmRequestSrv.h"
* tsmConnectionInt.h: Don't include "tsmRequestSrv.h"
* tsmConnectionParams.c: Include "tsmConnectionParamsInt.h"
* tsmConnection_local.c: Include "tsmConnectionParamsInt.h"
Include "tsmRequestSrv.h"
* tsmConnection_web.c: Move ghttp.h include inside HAVE_HTTP
Include "tsmConnectionParamsInt.h"
Include "tsmRequestSrv.h"
* tsmCreate.c: Include "tsmConnectionInt.h"
Include "tsmConnectionParamsInt.h"
* tsmEmulate.c: Include "tsmConnectionInt.h"
* tsmGeoVRML.c: Include "tsmConnectionParamsInt.h"
* tsmImage.c: Include "tsmConnectionInt.h"
* tsmLocalDbase.c: Include "tsmConnectionInt.h"
* tsmTile.c: Include "tsmConnectionInt.h"
* tsmTile_local.c: Include "tsmRequestSrv.h"
* tsmTile_web.c: Include "tsmRequestSrv.h"
* tsmTspec.c: Include "tsmConnectionInt.h"
Include tsmConnectionParamsInt.h"
* tsmTspec_local.c: Include "tsmConnectionParamsInt.h"
* tsmTspec_web.c: Include "tsmConnectionParamsInt.h"
* tsmUtils.c: Include "tsmConnectionInt.h"
* tsmVRML.c: Include "tsmConnectionInt.h"
Include "tsmConnectionParamsInt.h"
* tsmVRMLUtils.c: Include "tsmConnectionParamsInt.h"
Tue Jun 12 15:04:52 2001 <reddy@MAGNOLIA>
* tsmTile.c (tsmTileReqAdd): return FALSE if the requested level
is not valid, or if the tile (x,y) does not exist in the level.
2001-06-08 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmHost_web.c (tsmReaderThread_host): Improve trace messages.
* tsmTile_local.c (tsmReaderThread_local): Improve trace messages.
2001-06-08 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmHost_web.c (tsmReaderThread_host): Enable ghttp_dbeug when
trace level>= 2.
Thu Jun 7 14:26:48 2001 Lee Iverson <leei@AI.SRI.COM>
* tsmHost_web.c (tsmAddRequest_host): Add tracing.
(tsmRemoveRequest_host): Add tracing.
(trace_req): New. Callback for heap_forall. Prints requests.
(tsmReaderThread_host): Add tracing of heap contents when not empty.
2001-06-07 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmHost_web.c (tsmReaderThread_host): Exit properly on interrupt.
Wed Jun 6 22:57:05 2001 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmUrlToFile.c (tsmReadHttpFile): Properly initialize and check
status of redirect_url.
Thu May 31 11:05:42 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmJPEG.c: implement the skip_input_data callback for the jpeg
decompressor. Didn't seem to need this for TV JPEG TIFFs, but it
was needed to decompress TerraServer JPEG files.
* tsmUrlToFile.c (tsmReadHttpFile): check for and correctly handle
http redirect results when grabbing an http file (301 and 302).
* tsmJPEG.c (tsmJPEGCompress): add a tsmJPEGCompress function that
allows any buffer size to be compressed. The tsmJPEGCompressTile
function only handled buffers of one tile size.
Sat May 12 16:06:16 2001 <reddy@MAGNOLIA>
* tsmArg.c (tsmParseVRMLArgs): support a -onesided option for the
creation of GeoVRML geometry.
* tsmConnectionParams.h (TSM_PARAM_SOLID): added a new connection
parameter: TSM_PARAM_SOLID to determine whether GeoVRML geometry
is created one- or two-sided.
* tsmGeoVRML.c (TsmGeoVRML_uv2gcc): fix transposed lat/long pair
(TsmGeoVRML_gcc2uv): fix transposed lat/long pair
Fri May 11 16:39:19 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmReadRowsTIFF.c (tsmParseCreateParams_TIFF): support UTM
GeoTIFF images as output by ERDAS Imagine.
Fri Apr 20 14:09:37 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmConnection_local.c (tsmConnect_local): only create the TIFF
read level locks if we have a read connection, otherwise we
reference a NULL tspec.
(tsmDisconnect_local): only free the read level locks if they were
actually allocated (not done for a write connection).
* logging.c (NetLoggerWriteString): fix the generation of
NetLogger timestamps using the NSPR time functions
Thu Apr 12 10:43:57 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTile_local.c (readNextTile): move the logging of TV_TILE_READ
events down into the actual read function for localdisk.
* tsmHost_web.c (readNextTile): move the logging of TV_TILE_READ
events down into the actual read function for http.
Tue Apr 10 13:32:28 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmConnection.c (tsmLog): lock down the function and fix a bug
which could cause competing threads to write over each others log
events.
Mon Apr 9 13:09:23 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTile_web.c (tsmAddRequest_web): create a NetLogger
TV_TILE_REQ event.
* tsmTile_local.c (tsmAddRequestActual_local): create a NetLogger
TV_TILE_REQ event.
2001-03-14 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmRequestSrv.c (tsmReqServerThread): Initialize status to
PR_SUCCESS in case tsmReqServerNextReady() returns successfully.
2001-03-07 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmHost_web.c: Add (oops)!
* Makefile.in: Regen with automake-1.4d
* aclocal.m4: Ditto.
* missing: Upgrade to automake-1.4d
* config.h.in: Regen
* configure: Regen
2001-03-07 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnect_web.h: Delete !HOST_CONNECT branch. Now always used.
(struct TsmConnectionHttp): Delete.
(struct TsmConnectionHTTP): Delete !HOST_CONNECT branch
* tsmConnection_web.c: Delete !HOST_CONNECT branch. Now always used.
* tsmTile_web.c: Delete !HOST_CONNECT branch. Now always used.
2001-03-02 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnect_web.h (TsmConnectionHTTP): New. HTTP-specific
subclass of TsmConnectionCommon. Conditionalize on HOST_CONNECT
(struct TsmConnectionHttp): Make tsm_conn field a
TsmConnectionHTTP
(tsmOpenHttpConnection, etc.): Move decls to tsmIntProts.h
(tsmOpenHostConnection_web): New decl.
(tsmCloseHostConnection_web): New decl.
(tsmAddRequest_host): New decl.
(tsmRemoveRequest_host): New decl.
(tsmReprioRequest_host): New decl.
(tsmCheckTileFormat_host): New decl.
(tsmCheckTIFFFormat_host): New decl.
* tsmConnection.c (tsmDisconnectCommon): Don't destroy
non-existent lock.
* tsmConnectionInt.h (struct TsmConnectionCommon): Remove
type-specific fields: lock, numReaders, nextReader, readers,
writer and aux.
* tsmConnection_web.c (tsmConnect_web): Adapt for use of
TsmConnectionHTTP and TsmConnectionHttp* instead of
ActualConnection.
Initialize properly when HOST_CONNECT defined.
(tsmActualConnect_web, tsmDisconnectActual_web): Adapt for use of
TsmConnectionHTTP and TsmConnectionHttp* instead of
ActualConnection.
(tsmDisconnect_web): Disconnect properly when HOST_CONNECT defined.
* tsmTile_web.c: Conditionalize implementation on definition of
HOST_CONNECT.
#if !defined(HOST_CONNECT)
(tsmAddRequestActual_web, tsmRemoveRequestActual_web,
tsmReprioRequestActual_web, readNextTile,
tsmCheckTileFormatActual_web, tsmCheckTIFFFormatActual_web): Use
TsmConnectionHttp* instead of ActualConnection.
(tsmAddRequest_web): Pass proper value to tsmAddRequestActual_web
(tsmRemoveRequest_web): Pass proper value to
tsmRemoveRequestActual_web
(tsmReprioRequest_web): Pass proper value to
tsmReprioRequestActual_web
(tsmReaderThread_web): Pass correct value to readNextTile.
(tsmCheckTileFormat_web): Pass proper value to
tsmCheckTileFormatActual_web
(tsmCheckTIFFFormat_web): Pass proper value to
tsmCheckTIFFFormatActual_web
#endif
#if defined(HOST_CONNECT)
(tsmAddRequest_web): Call tsmAddRequest_host
(tsmRemoveRequest_web): Call tsmRemoveRequest_host
(tsmReprioRequest_web): Call tsmReprioRequest_host
#endif
* tsmConnect_local.h (struct TsmConnectionLocal): Make conn point
to a TsmConnectionLOCAL
(struct TsmConnectionLOCAL): New. Local file-specific subclass of
TsmConnection.
* tsmConnection_local.c (tsmConnect_local, tsmActualConnect_local,
tsmDisconnectActual_local, tsmDisconnect_local): Adapt for use
of TsmConnectionLOCAL and TsmConnectionLocal* instead of
ActualConnection.
* tsmTile_local.c (tsmAddRequestActual_local,
tsmRemoveRequestActual_local, tsmReprioRequestActual_local,
readNextTile, tsmCheckTileFormatActual_local,
tsmCheckTIFFFormatActual_local, tsmWriteTileActual_local): Use
TsmConnectionLocal* instead of ActualConnection.
(tsmAddRequest_local): Update call to tsmAddRequestActual_local.
(tsmRemoveRequest_local): Update call to
tsmRemoveRequestActual_local.
(tsmReprioRequest_local): Update call to
tsmReprioRequestActual_local.
(tsmReaderThread_local): Update call to readNextTile.
(struct TIFFHandle): Make connect field a TsmConnectionLOCAL.
(tiffCacheHandle): Use TsmConnectionLOCAL instead of
tsmConnection.
(tiffCacheClose): Update for change to TIFFHandle
(tsmReadTIFF_local): Update for change to TsmConnectionLOCAL
(tsmWriteTile_local): Update for change to TsmConnectionLOCAL and
tsmWriteTileActual_local.
(tsmWriteTILE_local, tsmWriteTIFF_local): Update for change to
TsmConnectionLOCAL.
(tsmCheckTileFormat_local): Update call to
tsmCheckTileFormatActual_local.
(tsmCheckTIFFFormat_local): Update call to
tsmCheckTIFFFormatActual_local.
* tsmIntProts.h (tsmOpenHttpConnection): Decl moved here from
tsmConnect_web.h.
(tsmCloseHttpConnection): Ditto.
(tsmUrlToMemory): Ditto.
(tsmUrlToFile): Ditto.
(tsmUrlToTempFile): Ditto.
(tsmUrlToBuffer): Ditto.
(tsmUrlMimeType): Ditto.
(tsmUrlExists): Ditto.
* tsmPyramidInfo_web.c: Remove #include "tsmConnect_web.h"
* tsmTspec_web.c: Remove #include "tsmConnect_web.h"
* tsmUrlToFile.c: Remove #include "tsmConnect_web.h"
(tsmReadHttpFile): Correct reuse and closure of http connection.
Make sure that it closes when connp is NULL.
2001-03-01 Lee Iverson <leei@Canada.AI.SRI.COM>
Remove entire ActualConnection-based virtual function
infrastructure and replace with direct virtual functions on
TsmConnection.
* tsmConnect_local.h (tsmDisconnect_local): Update decl.
(tsmAddRequest_local): Ditto.
(tsmReprioRequest_local): Ditto.
(tsmRemoveRequest_local): Ditto.
(tsmCheckTileFormat_local): Ditto.
(tsmCheckTIFFFormat_local): Ditto.
(tsmReadNextTile_local): Delete decl.
* tsmConnect_web.h (tsmDisconnect_web): Update decl.
(tsmAddRequest_web): Ditto.
(tsmReprioRequest_web): Ditto.
(tsmRemoveRequest_web): Ditto.
(tsmCheckTileFormat_web): Ditto.
(tsmCheckTIFFFormat_web): Ditto.
(tsmReadNextTile_web): Delete decl.
* tsmConnection.c (tsmConnectionVTable): Delete.
(tsmConnect): Modify to create TsmConnection structure by calling
type-specific factory methods. Move most initialization into...
(tsmConnectCommon): ...here. Generic connection initialization.
(makeActualConnection): Delete.
(tsmvDisconnect): Delete.
(tsmDisconnectCommon): New. Undo generic connection initialization
performed by tsmConnectionInit.
(tsmvBeginLogging): Remove call to tsmBeginLogging_actual
(tsmvEndLogging): Remove call to tsmEndLogging_actual
(tsmDisconnect_actual): Delete.
(tsmWriteTile_actual): Delete.
(tsmCheckTileFormat_actual): Delete.
(tsmCheckTIFFFormat_actual): Delete.
(tsmBeginLogging_actual): Delete.
(tsmEndLogging_actual): Delete.
(tsmAddRequest_actual): Delete.
(tsmRemoveRequest_actual): Delete.
(tsmReprioritizeRequest_actual): Delete.
(tsmvAddRequest): Delete.
(tsmvRemoveRequest): Delete.
(tsmvReprioritizeRequest): Delete.
(tsmWriteTile, tsmCheckTileFormat, tsmCheckTIFFFormat): Move to
tsmTile.c
(tsmBeginLogging, tsmEndLogging): Protect against null function
pointer.
* tsmConnectionInt.h (tsmConnect_web): Update decl as
HTTP-specific creation of TsmConnection.
(tsmConnect_dpss): Update decl as DPSS-specific creation of
TsmConnection.
(tsmConnect_local): Update decl as local file-specific creation of
TsmConnection.
(tsmConnectCommon): New decl.
(tsmDisconnectCommon): New decl.
(struct ActualConnectionVTable): Delete.
(struct ActualConnection): Remove vtable.
* tsmConnection_dpss.c (vtable_dpss): Change to TsmConnectionVTable
(tsmConnect_dpss): Modify to initialize the TsmConnection instead
of an ActualConnection.
(tsmActualConnect_dpss): New. Moved ActualConnection
initialization here from old version of tsmConnect_dpss
(tsmDisconnectActual_dpss): Renamed from tsmDisconnect_dpss
(tsmDisconnect_dpss): New. DPSS connection-specific disconnect.
* tsmConnection_local.c (vtable_local): Change to
TsmConnectionVTable
(tsmConnect_local): Modify to initialize the TsmConnection instead
of an ActualConnection.
(tsmActualConnect_local): New. Moved ActualConnection
initialization here from old version of tsmConnect_local
(tsmDisconnectActual_local): Renamed from tsmDisconnect_local
(tsmDisconnect_local): New. local file connection-specific
disconnect.
* tsmConnection_web.c (vtable_web): Change to TsmConnectionVTable
(tsmConnect_web): Modify to initialize the TsmConnection instead
of an ActualConnection.
(tsmActualConnect_web): New. Moved ActualConnection
initialization here from old version of tsmConnect_web
(tsmDisconnectActual_web): Renamed from tsmDisconnect_web
(tsmDisconnect_web): New. HTTP connection-specific disconnect.
* tsmIntProts.h (tsmDisconnect_actual): Delete decl.
(tsmCheckTileFormat_actual): Ditto.
(tsmCheckTIFFFormat_actual): Ditto.
(tsmBeginLogging_actual): Ditto.
(tsmEndLogging_actual): Ditto.
(tsmAddRequest_actual): Ditto.
(tsmRemoveRequest_actual): Ditto.
(tsmRemoveRequest_actual): Ditto.
(tsmReprioritizeRequest_actual): Ditto.
(tsmReadNextTile_actual): Ditto.
(tsmWriteTile_actual): Ditto.
* tsmTile.c (tsmvCheckTileFormat): Delete.
(tsmCheckTileFormat): Call TsmConnectionVTable.checkTileFormat
(tsmvCheckTIFFFormat): Delete.
(tsmCheckTIFFFormat): Call TsmConnectionVTable.checkTIFFFormat
(tsmvWriteTile): Delete.
(tsmWriteTile): Call TsmConnectionVTable.writeTile
* tsmTile_dpss.c (tsmWriteTileActual_dpss): Renamed from
tsmWriteTile_dpss.
(tsmWriteTile_dpss): New. Direct target of
TsmConnectionVTable.writeTile for DPSS connections.
* tsmTile_local.c (tsmAddRequestActual_local): Renamed from
tsmAddRequest_local.
(tsmAddRequest_local): New. Direct target of
TsmConnectionVTable.addRequest for local file connections.
(tsmRemoveRequestActual_local): Renamed from tsmRemoveRequest_local
(tsmRemoveRequest_local): New. Direct target of
TsmConnectionVTable.removeRequest for local file connections.
(tsmReprioRequestActual_local): Renamed from tsmReprioRequest_local
(tsmReprioRequest_local): New. Direct target of
TsmConnectionVTable.reprioRequest for local file connections.
(tsmWriteTileActual_local): Renamed from
tsmWriteTile_local.
(tsmWriteTile_local): New. Direct target of
TsmConnectionVTable.writeTile for local file connections.
(tsmCheckTileFormatActual_local): Renamed from
tsmCheckTileFormat_local
(tsmCheckTileFormat_local): New. Direct target of
TsmConnectionVTable.checkTileFormat for local file connections.
(tsmCheckTIFFFormatActual_local): Renamed from
tsmCheckTIFFFormat_local
(tsmCheckTIFFFormat_local): New. Direct target of
TsmConnectionVTable.checkTIFFFormat for local file connections.
* tsmTile_web.c (tsmAddRequestActual_web): Renamed from
tsmAddRequest_web.
(tsmAddRequest_web): New. Direct target of
TsmConnectionVTable.addRequest for HTTP connections.
(tsmRemoveRequestActual_web): Renamed from tsmRemoveRequest_web
(tsmRemoveRequest_web): New. Direct target of
TsmConnectionVTable.removeRequest for HTTP connections.
(tsmReprioRequestActual_web): Renamed from tsmReprioRequest_web
(tsmReprioRequest_web): New. Direct target of
TsmConnectionVTable.reprioRequest for HTTP connections.
(tsmCheckTileFormatActual_web): Renamed from
tsmCheckTileFormat_web
(tsmCheckTileFormat_web): New. Direct target of
TsmConnectionVTable.checkTileFormat for HTTP connections.
(tsmCheckTIFFFormatActual_web): Renamed from
tsmCheckTIFFFormat_web
(tsmCheckTIFFFormat_web): New. Direct target of
TsmConnectionVTable.checkTIFFFormat for HTTP connections.
* tsmUrlToFile.c: Update some comments to reflect recents changes.
2001-02-28 Lee Iverson <leei@Canada.AI.SRI.COM>
* Makefile.am (libtsmApi_a_SOURCES): Add tsmHost_web.c
* Makefile.in: Regen.
* tsmHost_web.c: New file. Host-oriented web interface. First
pass, not currently used.
Deprecate _actual virtual functions in favour of direct virtual
functions on TsmConnection. Will increase flexibility and allow
more variation on implementation behing the connection.
* tsmConnect_web.h (tsmOpenHttpConnection): Update decl.
(tsmCloseHttpConnection): Ditto.
(tsmUrlToMemory): Ditto.
(tsmUrlToFile): Ditto.
(tsmUrlToTempFile): Ditto.
(tsmUrlToBuffer): Ditto.
(tsmUrlMimeType): Ditto.
(tsmUrlExists): Ditto.
* tsmConnection.c (tsmConnectionVTable): Define default virtual
function table.
(tsmConnect): Assign default vtable to TsmConnection.
Initialize lock and nextReader index.
(tsmvDisconnect): New. Default virtual function for
TsmConnectionVTable.disconnect
(tsmvBeginLogging): New. Default virtual function for
TsmConnectionVTable.beginLogging
(tsmvEndLogging): New. Default virtual function for
TsmConnectionVTable.endLogging
(tsmvAddRequest): New. Default virtual function for
TsmConnectionVTable.addRequest
(tsmvRemoveRequest): New. Default virtual function for
TsmConnectionVTable.removeRequest
(tsmvReprioritizeRequest): New. Default virtual function for
TsmConnectionVTable.reprioritizeRequest
(tsmDisconnect, tsmAddRequest, tsmRemoveRequest,
tsmReprioritizeRequest, tsmWriteTile, tsmCheckTileFormat,
tsmCheckTIFFFormat, tsmBeginLogging, tsmEndLogging): Convert to
virtual functions.
* tsmConnectionInt.h (struct TsmConnectionVTable): New virtual
function table for TsmConnection.
(struct TsmConnectionCommon): Add vtable field for
TsmConnectionVTable. Add lock field and nextReader index.
* tsmConnection_web.c (tsmConnect_web): Update call to
tsmUrlExists.
(tsmDisconnect_web): Clear cached connection on close.
* tsmPurl.c (tsmParseUrl): Return NULL for empty url.
* tsmRequestSrv.c (struct tsmRequestServer): Remove assign field.
(tsmReqElemCreate): Initialize connect to server connection.
(tsmReqServerCreate): Don't initialize assign
(tsmReqElemReprioritize): Call TsmConnection method
tsmReprioritizeRequest.
(tsmReqServerRescind): Call TsmConnection method tsmRemoveRequest
(tsmReqServerAssignRequests): Don't implement assignment algorithm
here. Just use TsmConnection method tsmAddRequest
* tsmRequestSrv.h (struct tsmReqElem): Add connect field for
reference to TsmConnection. Add HostConnection reference to
union.
* tsmTile.c (tsmCheckTileFormat, tsmCheckTIFFFormat,
tsmWriteTile): Moved to tsmConnection.c as virtual function
calls.
(tsmvCheckTileFormat, tsmvCheckTIFFFormat, tsmvWriteTile): Default
assignments for virtual functions.
* tsmTile_local.c (tsmAddRequest_local): Store conn.actual
association here.
(tsmRemoveRequest_local): Detach conn.actual association
* tsmTile_web.c (tsmAddRequest_web): Store conn.actual association
here.
(tsmRemoveRequest_web): Detach conn.actual association
(readNextTile): Update interface to tsmUrlToBuffer
(tsmCheckTileFormat_web): Update interface to tsmUrlExists
(tsmCheckTIFFFormat_web): Ditto.
* tsmUrlToFile.c (tsmOpenHttpConnection): Change to use a
http_trans_conn* directly.
(tsmCloseHTTPConnection): Ditto.
(tsmReadHttpFile): Change to use a http_trans_conn** directly.
Connection caching is handled by storing values the location
referred to.
(tsmUrlToMemory, tsmUrlToBuffer, tsmUrlToFile, tsmUrlToTempFile,
tsmUrlMimeType, tsmUrlExists): Ditto.
Wed Jan 31 11:17:51 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmRequestSrv.c (tsmReqServerAssignRequests): added Jason Fox's
mod to lock down the function. This was causing a race condition
under fast Windows machines.
Wed Jan 17 14:27:51 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmArg.c (tsmParseVRMLArgs): remove unused options
Mon Jan 15 16:45:49 2001 <reddy@MAGNOLIA>
* tsmDatabase_local.c(tsmReadServer_local): created a new
implementation of this function that uses the MSVC functions
FindFirstFile/FindNextFile as the POSIX opendir/readdir functions
are not available under MSVC.
Sun Jan 14 17:56:34 2001 <reddy@MAGNOLIA>
* tsmDatabase_local.c (tsmReadServer_local): #ifndef MSVC this
function as it uses opendir/readdir which are POSIX functions but
not supported by MSVC - need to recode in portable functions!
Tue Jan 9 15:55:47 2001 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmGeoVRML.c (TsmGeoVRML_createGeoElevationGrid): fix the
calculation of valid tile sizes for edge tiles.
(TsmGeoVRML_writeAllTiles): improve the output of status
information as we go
(TsmGeoVRML_writeHTMLFile): output an HTML comment saying that the
file was produced with tsmApi from SRI. Also, create the directory
for the index.html file if it does not exist.
(TsmGeoVRML_progress): do an fflush in order to get the progress
display
(TsmGeoVRML_writeAllTiles): create the index.html file at the
start of the tile generation process, not at the end.
(TsmGeoVRML_normalize): only normalize if the length is != 0.0
(TsmGeoVRML_calcNormal): compare oi (x,y) against oi pixel bounds,
not the DEM one. Stops all those 0xnan normals being generated.
Sun Jan 07 13:00:21 2001 <reddy@MAGNOLIA>
* tsmUtils.c (tsmMakePathAbsolute): [new func] prepends an
absolute path to a filename if it is relative.
Wed Dec 20 16:15:21 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmCreate.c (tsmDescribeImportFormat): add the text "big endian"
to the format description for raw and lrbt to show that we expect
binary data in big-endian format (Unix type, not PC).
2000-12-15 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmDatabase.c (tsmRemoveMapFromDatabasePos): Provide doc header.
(tsmRemoveModelFromDatabasePos): Ditto.
* tsmReadRowsDEM.c (tsmReadRowsDEM_saveDEMAsRAW): Predeclare static.
* tsmConnection_web.c (tsmDisconnect_web): Don't close HTTP
connection until after thread shutdown.
2000-12-13 Lee Iverson <leei@canoe.ai.sri.com>
* tsmReadRowsGIF.c (tsmParseCreateParams_GIF): Return FALSE.
* tsmDatabase.c (tsmRemoveServerSetsFromDatabase): Remove maps
using tsmRemoveMapFromDatabasePos and don't skip checking next
one. Ditto for models.
(tsmRemoveMapFromDatabasePos): New. Remove map at index.
(tsmRemoveMapFromDatabase): Find then use
tsmRemoveMapFromDatabasePos.
(tsmRemoveModelFromDatabasePos): New. Remove model at index.
(tsmRemoveModelFromDatabase): Find then use
tsmRemoveModelFromDatabasePos.
2000-12-11 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnection.c (tsmConnect): Store purl into location to clean
up memory leak.
Thu Nov 30 17:59:55 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmGeoVRML.c: removed unused variables "geo_width" and
"geo_height"
* tsmVRMLUtils.c (tsmGetTexCoords): removed unused variables
"maxpix_x" and "maxpix_y"
(tsmCalcRange): commented out unused variables "geo_width" and
"geo_height"
(tsmTileElev): removed unused variable "polyx" and "polyy"
* tsmImageUtils.c (tsmTileToRgb): removed unused variables "i10",
"i01", and "numPixels"
* tsmTile_local.c (tsmCheckTileFormat_local): remove unused
variable "connect"
(tsmCheckTIFFFormat_local): removed unused variable "connect"
* tsmWriteRows.c (tsmWriteRows_new): reference the SimpleTileSet
starting from the minLevel, not zero. Do not assume that the start
level is 0. Bug reported by Jerry Isdale.
(tsmWriteRows_write): provide more verbose error output when an
invalid level number is found. Suggestion from Jerry Isdale.
Also, correctly offset the level number with the minLevel value,
as above.
(tsmWriteRows_writeTiles): provide more verbose error output when
an invalid level number is found and correctly offset the level
number with the minLevel value, as above. Bug report from Jerry
Isdale.
Mon Nov 27 15:12:59 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmDatabase.c (tsmFootprintToLatLong): implement approximate
conversion between an LVCS bounding box and a GDC bounding box
(assumes 1 deg == 100 km).
2000-11-22 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnect_local.h (tsmReprioRequest_local): New decl.
* tsmConnect_web.h (tsmReprioRequest_web): New decl.
* tsmConnection.c (tsmReprioritizeRequest_actual): New.
Call reprioritizeRequest virtual function.
* tsmConnectionInt.h (ActualConnectionVTable): Add
reprioritizeRequest virtual function.
* tsmConnection_dpss.c (vtable_dpss): Add empty entry for
reprioritizeRequest
* tsmConnection_local.c (vtable_local): Add entry for
tsmReprioRequest_local
* tsmConnection_web.c (vtable_web): Add entry for
tsmReprioRequest_web
* tsmIntProts.h (tsmAddRequest_actual): Add proto
(tsmRemoveRequest_actual): Add proto.
(tsmReprioritizeRequest_actual): Add proto.
(tsmReadNextTile_web): Delete decl.
(tsmWriteTile_local): Delete decl.
* tsmRequestSrv.c (tsmReqElemReprioritize): New. Adjust the
priority of a request.
(tsmReqServerRescind): Reprioritize a tile if we've removed the
highest priority request but not the tile itself.
(tsmReqServerSubmit): Reprioritize when priority increases.
* tsmTile_local.c (tsmReprioRequest_local): New. Reprioritize a
tile in this connection's queue.
* tsmTile_web.c (tsmReprioRequest_web): New. Reprioritize a tile
in this connection's queue.
(tsmReadNextTile_web): Delete.
Fri Nov 17 14:22:19 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmCreate.c (tsmInitTspecParams): make the default level number
for creating DEMs be 0 not 5.
2000-11-13 Michael A. Eriksen <eriksen@ai.sri.com>
* tsm.h: Added void tsmTileReqInfo( TsmConnection connect,
PRIntervalTime *begin, PRIntervalTime *end, int *num_now, int
*num_never, int *num_later );
* tsmReadRowsTIFF.h: moved #include "tsmReadRowsTIFF.h" to be the
first include in order to get config.h loaded
2000-11-01 Michael A. Eriksen <eriksen@ai.sri.com>
* Logging.c: Renamed __WIN32__ to WIN32 and _MSVC to MSVC
* Removed winbuild/config.h
2000-11-08 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmExtProts.h (tsmRequestDestroy): Expose
* tsmRequestSrv.c (tsmReqServerNextReady): Handle end >= n.
2000-11-07 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmRequest.h: Move exposed decls to...
* tsmExtProts.h: ...here.
* tsmConnection.c (tsmConnect): Don't initialize removed fields.
(tsmConnectRequestList): New. Create and return a new tile
request list.
* tsmConnectionInt.h (struct TsmConnectionCommon): Remove obsolete
fields (req_begin, req_end, numb_now, numb_never, numb_later).
* tsmTile.c (tsmTileReqAdd): Remove references to old
implementation.
(tsmTileReqInfo): Turn into useless stub. No longer works.
2000-11-06 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmCreate_RAW.c (tsmDownSample_inmemory_levels): Disable >10000m
checking.
* tsmWriteRows.c (tsmWriteRows_write): Ditto.
Fri Nov 3 16:02:47 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTile_local.c (tiffCacheHandle): when reading the max number
of open file descriptors, a previous TIffHandle was popped off the
stack to use for the new descriptor, however it was stored in a
local variable with the same name as a more global variable. This
outer variable was used after the inner scope was deleted and so
the new TiffHandle pointer was lost, causing core dump time.
2000-11-03 Lee Iverson <leei@Canada.AI.SRI.COM>
* configure.in: Use large file compilation environment under
Solaris.
* configure: Regen
* tsmConnection.c (tsmConnect): Check for read failure when
mode != TSM_WRITE_ONLY
* tsmConnection_local.c (tsmConnect_local): Initialize read
infrastructure when mode != TSM_WRITE_ONLY
* tsmCreate.c (tsmCreateAllTiles): Properly add TSM_DOWNSAMPLE_DEM
flag to tsmDownSample_inmemory calls.
* tsmCreate_RAW.c (downsample_image_u32): Alternate
implementation with checking (disabled).
(tsmDownSample_byblocks): Check for bad DEM values read in.
* tsmTile.c (tsmWriteTile): Clean the tracing a bit.
* tsmWriteRows.c (tsmWriteRows_write): Check for bad DEM values on
write.
Thu Nov 02 15:29:26 2000 <reddy@MAGNOLIA>
* tsmConnection.c (tsmConnect): don't do all that tsmFreePurl()
stuff - it's freeing memory that is owned by the connection!
* tsmConnection_local.c (tsmConnect_local): the new multi-pipe
reading architecture made a few assumptions that connection was
read only. As a result, write connections always failed.
* tsmGeoVRML.c: new function - sets an MFColor field with a single
value
(TsmGeoVRML_writeTileModel): create a Background node
(TsmGeoVRML_writeHTMLFile): fix up the index.html file
(TsmGeoVRML_writeTileImage): fix so that we can now handle 1-byte
(greyscale) images - previously assumed all images were RGB.
* tsmUtils.c (tsmShowUrl): use "explorer" as the default web
browser to use for hyperlinks on a PC for the time being. (Can be
overridden.)
* tsmConnectionParams.c (tsmInitParams): don't generate normals by
defaults - still some small bug to track down here
Wed Nov 01 17:14:19 2000 <reddy@MAGNOLIA>
* tsmGeoVRML.c: guard against NULLs and also free the TsmGeoVRML
structure itself.
2000-10-26 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnection.c (tsmConnect): Handle failures to creat actual
connections more gracefully.
* tsmConnect_local.h (struct TsmConnectionLocalAux): New.
Common to all actuals. Hangs off of parent connection.
* tsmConnection_local.c (tsmConnect_local): If a TIFF dataset,
create locks and TIFF handle space for each level.
(tsmDisconnectCommon_local): New. Clean up locks and TIFF handle
space for each level. Close open TIFF handles using
tiffCacheClose.
* tsmTile_local.c: Include <prinit.h>
(struct TIFFHandle): New. Cache for TIFF handles.
(all_handles): New. List of currently open TIFF handles.
(tiffInit, tiffInitFunc): New. PRCallOnceType pair to initialize
all_handles.
(tiffCacheHandle): New. Cache a newly created TIFF handle,
trashing a previous one if we've overrun our limit.
(tiffCacheClose): New. Close and forget about a TIFF handle.
(tsmReadTIFF_local): Lock accesses to a particular TIFF file.
Cache open handles using tiffCacheHandle.
2000-10-16 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnection.c (tsmConnect): Attempt to read tspec prior to
making actual connections.
* tsmConnectionInt.h (tsmConnect_web): Add idx argument.
(tsmConnect_dpss): Ditto.
(tsmConnect_local): Ditto.
* tsmConnection_dpss.c (tsmConnect_dpss): Add idx argument.
* tsmConnection_local.c (tsmConnect_local): Add idx argument.
Remove tspec initialization (now done in tsmConnect).
Make readable thread name.
* tsmConnection_web.c (tsmConnect_web): Add idx argument.
Remove tspec initialization (now done in tsmConnect).
Make readable thread name.
* tsmRequest.c (tsmRequestClaim): Increase trace level.
* tsmRequestSrv.c (tsmReqServerClaimList): Increase trace level.
* tsmTile_local.c (tsmReaderThread_local): Improve tracing of
error and shutdown conditions.
* tsmTile_web.c (tsmReaderThread_web): Improve tracing of error
and shutdown conditions.
Thu Oct 12 13:11:13 2000 <reddy@MAGNOLIA>
* tsmImage.c (tsmReadImage): use "rb" for tsmOpenStream, not "r"
* tsmWriteRowsPPM.c: always use "wb" not "w"
* tsmUrlToFile.c: always use "rb" not just "r" - Windows will not
read a binary file correctly if you just specify "r"
* tsmReadRowsRAW.c (tsmReadRowsRAW_new): always use "rb" not "r"
* tsmReadRowsJPEG.c: always use "rb", not just "r" with fopen
* tsmReadRowsDOQ.c: always use "rb", not just "r"
* tsmReadRowsDEM.c: always use "rb" and "wb" with fopen!
* tsmImage.c (tsmSaveImageJFIF): always use "rb" with fopen, not
"r"!
* tsmReadRowsPBM.c: always use "rb" with fopen when then file is
binary as Windows gets picky about this.
Mon Oct 9 14:28:38 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTile_local.c (tsmReaderThread_local): make robust in face of
req being returned NULL.
* tsmConnection_local.c (tsmConnect_local): make sure that we
create a connect->name string, even if we don't have a tspec file
to get the name from.
* tsmRequestSrv.c (tsmReqServerThread): guard against NULL tspec
pointer - this can happen when connection is write-only, i.e. the
tspec hasn't been created yet.
2000-10-02 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmTile.c (tsmReadTile): Call tsmAllocReadTile() instead of vice
versa.
(tsmAllocReadTile): The basic implementation that does no data
copying (maybe a speed boost).
2000-09-29 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmRequest.h (struct tsmSimpleRequestList): Don't limit to 32768
items in request list.
2000-09-29 Lee Iverson <leei@Mission.AI.SRI.COM>
* tsmGeoVRML.c (TsmGeoVRML_new): Remove strange cruft.
* tsmTile_local.c (tsmCheckTileFormat_local): Use PR_GetFileInfo64
so that we don't crap out on large TIFF files.
(tsmCheckTIFFFormat_local): Ditto.
2000-09-29 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmTile_local.c (tsmCheckTileFormat_local): Improve tracing.
2000-09-28 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmCreate_RAW.c (tsmDownSample_inmemory_levels): Remove warining
on h1_span.
* tsmTile.c (receiveTile, tsmReadTile): Improve tracing.
* tsmTile_local.c (tsmReaderThread_local): Change direction of
heap_is_empty test. Ooops. Copy rest of error handling
etc. from tsmReaderThread_web.
* tsmTile_web.c (tsmReaderThread_web): Use heap_is_empty test.
2000-09-27 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmRequestSrv.c (struct tsmRequestServer_): Add destroying flag
so we can avoid recursive locks.
(tsmReqServerCreate): Initialize destroying to FALSE.
(tsmReqServerDestroy): Set destroying TRUE once we are locked.
(tsmReqServerForgetList): Only lock if !destroying.
(tsmReqServerRescind): Ditto.
* tsmTile.c (receiveTile): Status is TRUE if tileBuffer is non-zero.
* tsmRequestSrv.c (tsmReqElemCreate): Zero errCount.
(tsmReqServerDequeueTile): Return failure if NULL buffer queued.
* tsmRequestSrv.h (struct tsmReqElem_): Add errCount field.
* tsmTile_web.c (tsmReaderThread_web): Rerequeue tiles after
errors, counting number of failures. If a tile request fails
three times, then complete the request by queueing a NULL
tileBuffer.
(readNextTile): Improve failure tracing.
* tsmUrlToFile.c (tsmReadHttpFile): Reset the connection after an
error response from ghttp.
Tue Sep 26 10:43:09 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmReadRowsTIFF.c (tsmParseCreateParams_TIFF): swap lat/long
info from GeoTIFF file - got it the wrong way round.
Tue Sep 26 13:52:24 2000 <leei@MAGNOLIA>
* configure.in: libxml inclusion references ../libxml
* configure: Regen.
* tsmRequestSrv.c (tsmReqServerForgetElem): If not found in
eqhash_delete, don't destroy.
Tue Sep 26 10:43:09 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* logging.c (sys_err_str): removed references to sys_nerr and
sys_errlist as these do not appear to be defined under Solaris
2.7.
2000-09-25 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmArg.c (tsmParseReadArgs): Add -read_multi arg for setting the
TSM_PARAM_READ_MULTI value.
* tsmConnection.c (tsmConnect): Default read_multi to 4, and read
from params if set.
* tsmConnectionParams.c (tsmSetParam): Parse TSM_PARAM_READ_MULTI
and TSM_PARAM_WRITE_MULTI.
* tsmConnectionParams.h (TSM_PARAM_READ_MULTI): Define.
(TSM_PARAM_WRITE_MULTI): Define.
* tsmConnectionParamsInt.h (struct TsmConnectionParamsStruct): Add
read_multi and write_multi value slots.
2000-09-20 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmDatabase.c (tsmPersistDatabase): Update for libxml 2.x
2000-09-14 Lee Iverson <leei@Canada.AI.SRI.COM>
* Makefile.am (EXTRA_HEADERS): Add tsmConnect_web.h,
tsmConnect_local.h and tsmConnect_dpss.h
* Makefile.in: Regen
* tsmConnection.c (tsmConnect): Start request server and create
initial (compatibility) request list.
(tsmDisconnect): Clean up request server and request lists.
(tsmAddRequest_actual): New. Generic function to add a request to
the actual connection.
(tsmRemoveRequest_actual): New. Generic function to remove a
request from the actual connection.
2000-09-14 Lee Iverson <leei@Canada.AI.SRI.COM>
*: First step in implementing multiple connections per server.
* Makefile.am (EXTRA_HEADERS): Add tsmRequestSrv.h
* Makefile.in: Regen
* tsmConnectionInt.h (ActualConnection): New typedef.
(TsmConnectionCommon): Move ConnectionCommonFields into here.
(tsmActualConnect_dpss): Declare.
(tsmActualConnect_http): Declare.
(tsmActualConnect_local): Declare.
(ActualConnectionVTable): New typedef.
(struct ActualConnection_): Declare base class.
(struct TsmConnectionDpss): First field is now
struct ActualConnection_. Move jpegBuffer here.
(struct TsmConnectionLocal): Ditto.
(struct TsmConnectionHttp): Ditto.
* tsmConnection.c (tsmConnect): Allocate allocate one
ActualConnection and establish it.
Don't allocate jpegBuffer
(tsmDisconnect): Call tsmDisconnect_actual.
Don't free jpegBuffer.
(tsmBeginLogging): Defer to tsmBeginLogging_actual
(tsmEndLogging): Defer to tsmEndLogging_actual
(tsmDisconnect_actual): New.
(tsmReadNextTile_actual): New.
(tsmWriteTile_actual): New.
(tsmCheckTileFormat_actual): New.
(tsmCheckTIFFFormat_actual): New.
(tsmBeginLogging_actual): New.
(tsmEndLogging_actual): New.
* tsmConnection_dpss.c (vtable_dpss): Instantiate
ActualConnectionVTable for DPSS.
(*_dpss): Adapt for new structure.
* tsmTile_dpss.c: Adapt for new structure.
* tsmTspec_dpss.c: Ditto.
* tsmConnection_local.c (vtable_local): Instantiate
ActualConnectionVTable for local files.
(*_local): Adapt for new structure.
* tsmTile_local.c: Adapt for new structure.
* tsmConnection_web.c (vtable_web): Instantiate
ActualConnectionVTable for HTTP.
(*_web): Adapt for new structure.
* tsmTile_web.c: Adapt for new structure.
* tsmUrlToFile.c (tsmOpenHttpConnection): Grab type from
TsmConnection
(tsmReadHttpFile, tsmUrlToMemory, tsmUrlToBuffer, tsmUrlToFile,
tsmUrlToTempFile, tsmUrlMimeType, tsmUrlExists): Take
TsmConnectionHttp argument directly.
2000-09-08 Lee Iverson <leei@Canada.AI.SRI.COM>
* Makefile.am (libtsmApi_a_SOURCES): Add tsmRequest.c and
tsmRequestSrv.c.
(EXTRA_HEADERS): Add tsmRequest.h and tsmRequestSrv.h
* Makefile.in: Regen
* tsmRequest.[ch]: New files. Request list management.
* tsmRequestSrv.[ch]: New files. TsmConnection-specific request
list manager.
2000-08-29 Lee Iverson <leei@Canada.AI.SRI.COM>
* configure.in (DO_RPCGEN): Define automake conditional only when
we have rpcgen on an SGI Irix.
* Makefile.am: Turn off rpcgen derivations if !DO_RPCGEN
* configure, Makefile.in: Regen
Mon Aug 28 11:16:30 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmTile_local.c (tsmWriteTIFF_local): when writing TIFF files,
then set the PHOTOMETRIC tag correctly for greyscale images -
previously we were setting this to be RGB. This caused the JPEG
library to fail when writing JPEG compressed greyscale (1
component) tilesets.
* tsmLAS_IO.c: [file deleted]
* tsmLAS_IO.h: [file deleted]
* tsmCreate_RAW.c (tsmReadRow_RAW): [removed]
(tsmCreateLevelTiles_generic): [removed]
(tsmDownSample_generic): [removed]
(tsmDownSample_generic_ps): [removed]
(tsmDownSample_generic_gaus): [removed]
(tsmCreateLevelTiles_RAW): [removed]
(tsmDownSample_RAW): [removed]
* tsmCreate_LRBT.c (tsmCreateLevelTiles_LRBT): [removed]
(tsmDownSample_LRBT): [removed]
* tsmCreate_TIFF.c: [file deleted]
* tsmCreate.c (tsmCreateLevelTiles): [removed]
(tsmMakeTempImageName): [removed]
(tsmRemoveTempImages): [removed]
(tsmDownSample): [removed]
* mtables.c: [file deleted]
* sih.h: [file deleted]
* sihDecs.h: [file deleted]
* sihHash.c: [file deleted]
* sihProts.h: [file deleted]
* All .[ch] files: added Apache Software License notice
* AUTHORS: added Yong Tze Chi
* LICENSE: change the tsmApi license to the Apache Software
License, version 1.1
Sat Aug 26 18:24:26 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmReadRowsDEM.c (tsmParseCreateParams_DEM): don't constrain
USGS DEM based data to be output as 16-bit pyramids. This should
be user customizable.
* tsmReadRowsTIFF.c (tsmParseCreateParams_TIFF): allow grayscale
TIFF images as well as RGB and colour palette
Thu Aug 24 10:21:59 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmReadRowsTIFF.c: [new file] TIFF/GeoTIFF file reader
* tsmReadRowsTIFF.h: [new file] TIFF/GeoTIFF file reader
* tsmCreate.c: Added instructions in the header comment for the
file on how to write your own file format reader functions for
tsmApi
(tsmGetFileType): remove function - tsmFindImportFormat does all
of this already.
(tsmInitTspecParams): the default coordinate system when
generating a dataset should be TSM_NONE_COORDSYS, not UTM.
Tue Aug 22 11:37:31 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmGeoVRML.c (TsmGeoVRML_new): guard against NULL ferror field
don't create an error.txt file when generating GeoVRML content
(TsmGeoVRML_usage): correct the help text and correctly describe
the purpose of the make_geovrml utility (this really shouldn't be
in the tsmApi library but in tsmUtils/make_geovrml).
(TsmGeoVRML_writeHTMLFile): correct the path output to the
index.html <embed> tag for the root tree file
* tsmCreate_RAW.c (tsmDownSample_inmemory_levels): deal with the
case where the target pyramid has only one level (i.e. the entire
image is contained within a single tile - can happen for small
DEMs).
Fri Aug 18 17:53:04 2000 Yong Tze Chi <chi@Lomond.AI.SRI.COM>
* TsTileSpecGen.c (tspCreatePyramid): Modified so that this
function sets the numBytesPerComponent in tspec correctly.
* tsmReadRowsDEM.c: (tsmReadRowsDEM_read): Fixed bug in reading
DEM data from temporary RAW file.
Fri Aug 18 11:48:07 2000 Yong Tze Chi <chi@Silver.AI.SRI.COM>
* tsmCreate.c (tsmInitTileParams): Modified to initialize
out_bytespercomp properly.
* tsmCreate.h: Added the field 'out_bytespercomp' in TsmTileParams
struct to suuport byte format conversion.
* tsmWriteRows.h: Added the the field 'outBytesPerComp' in
TsmWriteRows struct for byte format conversion.
* tsmWriteRows.c: (tsmWriteRows_convertTileFormat): New function
to convert input tile byte format into output byte format desired,
e.g. 16-bit to 32-bit conversion.
Thu Aug 17 20:55:59 2000 Yong Tze Chi <chi@Silver.AI.SRI.COM>
* tsmWriteRows.c (tsmWriteRows_writeTile): This function now calls
tsmUpdateTileStats to update the min/max value of the dataset.
* tsmCreate.c: Modified to support reading of USGS DOQ format.
* tsmReadRowsDOQ.c: Added support for reading USGS DOQ format.
* tsmReadRowsDOQ.h: Added support for reading USGS DOQ format.
Wed Aug 16 11:32:37 2000 Yong Tze Chi <chi@Silver.AI.SRI.COM>
* tsmCreate.c: Added support for LRBT images.
* tsmReadRowsPBM.c: Changed functions only used in this module to
static.
* tsmReadRowsGIF.c: Changed functions only used in this module to
static.
* tsmReadRowsJPEG.c: Changed functions only used in this module to
static.
* tsmReadRowsDTED.c: Modified tsmParseCreateParams_DTED to
initialize tile's geographic coordinate.
* tsmReadRowsDEM.c: Added progress report while resampling
elevation data. Also modified tsmParseCreateParams_DEM to
initialize tile's geographic coordinate.
* tsmWriteRows.c: Added progress report while writing data.
* tsmReadRowsDTED.c: Added tsmReadRowsDTED.c to support reading of
DTED files for TerraVision dataset creation.
* tsmReadRowsDTED.h: Added tsmReadRowsDTED.h to support reading of
DTED files for TerraVision dataset creation.
* tsmCreate.h: Modified to add support for DTED reader.
* tsmCreate.c: Modified to add support for DTED reader.
Tue Aug 15 13:37:29 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmDatabase.c (tsmFootprintToLatLong): [new func] convert a
footprint in any coordinate system into a lat/long footprint.
(tsmIsFootprintInside): support comparisons against different
coordinate systems by first converting both footprints into
lat/long and then performing the comparison.
(tsmBuildGeosets): compare resolutions in a common unit system
(convert degrees into meters)
(tsmAddDataSetToDatabase): change message reporting different min
or max resolution between a newly read dataset and a dataset that
exists in the database. This is now a debug message, not an error
report.
Fri Aug 04 10:07:15 2000 <reddy@MAGNOLIA>
* tsmGeoVRML.c: add <float.h> include for DBL_MAX definition under
Windows
* tsmReadRowsGIF.h: need to undefine DrawText if it exists because
winuser.h under Windows defines this and thus causes a conflict
with the DrawText function in libungif.
* tsmGeoVRML.c: replace Unix-specific code with calls to
tsmMakeDirIfNotExist that works under Windows too.
Thu Aug 10 15:08:54 2000 Yong Tze Chi <chi@Silver.AI.SRI.COM>
* tsmCreate.c: Modified to support reading USGS DEM file.
* tsmReadRowsDEM.c: Added support for reading USGS DEM file.
* tsmReadRowsDEM.h: Added support for reading USGS DEM file.
* tsmWriteRows.c: Minor bug fix: inadequate memory allocation for
temporary buffer.
Tue Aug 8 10:19:48 2000 Yong Tze Chi <chi@Silver.AI.SRI.COM>
* tsmCreate.c: Modified to support RAW data format.
* tsmReadRowsRAW.h: Added tsmReadRowsRAW.h.
* tsmReadRowsRAW.c: Added tsmReadRowsRAW.c - support for reading
RAW data format.
* tsmWriteRowsPPM.c: Added comments.
* tsmWriteRows.c: Bug fix for handling non-LRBT image with
overlapping region, and added comments.
Mon Aug 7 18:20:59 2000 Yong Tze Chi <chi@Silver.AI.SRI.COM>
* tsmWriteRows.h: Modified to handle non-LRBT image formats
correctly.
* tsmWriteRows.c: Modified to handle non-LRBT image formats such
as JPEG, GIF, and PBM correctly.
2000-08-07 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmCreate_RAW.c (tsmDownSample_image, tsmDownSample_inmemory_r,
tsmDownSample_inmemory_levels, tsmDownSample_inmemory):
Change print() traces to TSMTRACE.
Mon Aug 7 10:57:13 2000 Yong Tze Chi <chi@Silver.AI.SRI.COM>
* tsmWriteRowsPPM.h: Added tsmWriteRowsPPM.h
* tsmWriteRowsPPM.c: Added tsmWriteRowsPPM.c. Write TerraVision
tiles out to PPM files. Used for debugging purposes.
* tsmReadRowsPBM.h: Added tsmReadRowsPBM.h.
* tsmReadRowsJPEG.h: Added tsmReadRowsJPEG.h.
* tsmReadRowsGIF.h: Added tsmReadRowsGIF.h.
* tsmWriteRows.h: Added tsmWriteRows.h.
* tsmReadRowsPBM.c: Added tsmReadRowsPBM.c. Read rows of data from
PPM and PGM image.
* tsmReadRowsJPEG.c: Added tsmReadRowsJPEG.c. Read rows of data
from JPEG image.
* tsmReadRowsGIF.c: Added tsmReadRowsGIF.c. Read rows of data
from GIF image.
* tsmWriteRows.c: Added tsmWriteRows.c. Contain functions to
write out TerraVision tiles. To be used with
tsmDownSample_inmemory.
2000-08-04 Lee Iverson <leei@Canada.AI.SRI.COM>
(tsmDownSample_byblocks): Redo initialization of top and bottom
borders to avoid memory overruns.
2000-08-04 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmIntProts.h (TSM_DOWNSAMPLE_SIGNED): Changed from UNSIGNED,
since most integer datasets (e.g. OI) will be unsigned.
* tsmCreate_RAW.c (tsmDownSample_image): Adapt for change to
SIGNED flag.
(tsmDownSample_inmemory_r, tsmDownSample_inmemory_levels):
Properly set flags for TOP and BOTTOM borders.
2000-08-03 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmCreate_RAW.c (tsmDownSample_byblocks): Properly initialize
in_dex array.
(tsmDownSample_inmemory_r): Fix recursion to properly distribute
data.
Tue Aug 1 14:25:04 2000 Yong Tze Chi <chi@Lomond.AI.SRI.COM>
* tsmGeoCoordBuffer.h: Renamed from tsmGeoCoord.h to avoid name
clash.
* tsmGeoCoordBuffer.c: Renamed from tsmGeoCoord.c to avoid name
clash.
* tsmGeoVRML.c: Renamed from TsmGeoCoord to GeoCoordBuffer to
avoid name clash.
2000-08-01 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmCreate_RAW.c (struct LevelBuf): Add span_h field (necessary?)
(tsmDownSample_inmemory_levels): Simplify and correct iin
preparation for rolling updates when overlap needed.
(tsmDownSample_inmemory): Initialize span_h.
* tsmGeoVRML.c (TsmGeoVRML_writeHTMLFile): Correct format string
to print percent signs.
Fri Jul 21 11:31:14 2000 Yong Tze Chi <chi@Lomond.AI.SRI.COM>
* tsmConnectionInt.h (ConnectionCommonFields): add new fields to
connection params structure for GeoVRML support
* tsmConnectionParams.c (tsmInitParams): initialise new GeoVRML
variables
(tsmSetParam): support new GeoVRML variables: TSM_PARAM_MODELS and
TSM_PARAM_TEXTURES
* tsmArg.c (tsmParseVRMLArgs): removed obsolete VRML creation options
(tsmDescribeArgs): ditto
Thu Jun 29 10:47:17 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* TsTileSpecGen.c (tspCreatePyramid): updated the tspec generation
routine to support the creation of LVCS datasets.
* tsmCreate.c (tsmInitTspecParams): initialise lvcs_x and lvcs_y
to 0.0.
* tsmCreate.h: add lvcs_x and lvcs_y parameters to specify the
LVCS offset from the lat/long origin
* tsmCreate.c (tsmCreateTspec): allow LVCS coordinate systems when
creating tspec files
2000-07-12 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnection_web.c (tsmConnect_web): Default connection caching
to TRUE.
2000-06-29 Lee Iverson <leei@Canada.AI.SRI.COM>
* TsTileSpecGen.c (tspCreatePyramid): tm_month needs to be offset
by 1, since tm_month==0 => January.
Wed Jun 28 15:24:46 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* TsTileSpecGen.c (tspCreatePyramid): don't ignore the user's
-comps setting when defining the default components per pixel for
an OI. Previously this was getting hardcoded to 3.
2000-06-28 Lee Iverson <leei@Canada.AI.SRI.COM>
* TsTileSpecGen.c (tspCreatePyramid): Downsample by (w+1)/2
* tsmCreate.c (tsmCreateAllTiles): Downsample by (w+1)/2
* tsmCreate_RAW.c (tsmDownSample_generic_ps): Downsample to
(w+1)/2 instead of w/2. Handle edge conditions.
(tsmDownSample_generic_gaus): Downsample to (w+1)/2 instead of
w/2. Use a 4x4 kernel for gaussian downsampling to avoid image
creep.
2000-06-26 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmUrlToFile.c (tsmOpenHttpConnection): Call
tsmCloseHttpConnection if failed to connect, instead of rolling
our own disconnect.
(tsmCloseHttpConnection): Don't assume that
http_trans_conn_destroy() won't access host and proxy_host.
Sat Jun 17 19:26:06 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmConnection.c (tsmSet): don't do the va_arg inside of the
min() MACRO because it gets expanded twice and we lose the
argument value. This meant that you could never set the jpeg
quality for writing datasets.
Sat Jun 3 22:40:51 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmUrlToFile.c (tsmOpenStream): make the "http writes not
supported" message a debug message rather than an error
report. Let's the calling function fail silently if it wants to.
Fri Jun 09 17:49:30 2000 <reddy@MAGNOLIA>
* tsmConnection.c (tsmConnect): only create the tileBasePurl and
tspecBasePurl structures if they are NULL. This was causing a mem
leak before because we were creating a new Purl without looking to
see if one already existed.
* tsmPurl.c (tsmMakePurl): remove the constant string initialisers
to the new Purl - make them NULL instead. This ties up a number of
potential mem free errors.
Mon Jun 05 15:06:31 2000 <reddy@MAGNOLIA>
* tsm.h: add #include for stdlib.h because Visual Studio's
stdlib.h defines min() and max() without checking for their
existence. We check, so let's bring in the MS stuff first.
* tsmPurl.c (tsmMakePurl): initialise the uri string also
(tsmCopyPurl): do a tsmMemStrdup on the protocolString field of a
Purl when we copy it. This used to be a pointer copy and that
worries me.
(tsmFreePurl): free the protocolString too now
(tsmParseUrl): do a tsmMemStrdup() when setting the protocolString
* tsmEmulate.c (tsmOpen): add protocolString to list of Purl
fields initialised
* tsmUrlToFile.c (tsmOpenStream): free the Purl that was allocated
when bombing out upon an error
* tsmConnection.c (tsmConnect): the Purl we create here is now
local in its scope and we can free it when we're done. Fixes a
potential duplicate mem free when tspec not parsed.
* tsmConnection_dpss.c (tsmConnect_dpss): take a copy of the
Purl for the dataset location, don't just grab the pointer.
* tsmConnection_web.c (tsmConnect_web): take a copy of the
Purl for the dataset location, don't just grab the pointer.
* tsmConnection_local.c (tsmConnect_local): take a copy of the
Purl for the dataset location, don't just grab the pointer.
2000-06-09 Michael A. Eriksen <eriksen@AI.SRI.COM>
* added #define HAVE_ERRNO_H to config.h in winbuild
2000-06-09 Lee Iverson <leei@Canada.AI.SRI.COM>
* configure.in (AC_CHECK_HEADERS): Add errno.h
* configure, config.h.in: Regenerate.
* logging.c: Include <errno.h> if HAVE_ERRNO_H, otherwise use
hopeful definitions.
2000-06-08 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmAllocTspecs.c (tsmFreeTspec): Add tracing.
* tsmConnection.c (tsmDisconnect): Add tracing.
* tsmUrlToFile.c (tsmOpenHttpConnection): Destroy connection on
http connection failure.
2000-06-05 Lee Iverson <leei@Canada.AI.SRI.COM>
* TsTileSpecIn.c (tspReadIdentityTspec1): Remove redundant strcpy().
* TsTileSpecIntProts.h (tspReadSimpleTileSet): Declare.
* configure.in (AC_CHECK_HEADERS): Add unistd.h
* configure, config.h.in: Regen
* tsmHost.c: Don't include <ctype.h>
* tsmImage.c: Include <unistd.h> if HAVE_UNISTD_H defined.
* tsmInternal.h: Include <ctype.h>
* tsmUtils.c: Include <unistd.h> if HAVE_UNISTD_H defined.
(tsmShowUrl): We can only call unlink() if HAVE_UNISTD_H
Thu May 18 15:31:59 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmDatabase.c (tsmPrintMap): save the geo-name field for map
entries in the dataset database
(tsmPrintModel): save the geo-name field for model entries also
* tsmDatabase_local.c (tsmParseDatabaseLine): read the geo-name
field for model and map entries in the dataset database
Wed May 10 17:10:13 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmUrlToFile.c (tsmReadHttpFile): only check for connection
close if a TsmConnection structure has been passed in, otherwise
we stand the risk of dereferencing a NULL pointer.
2000-04-24 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnectionInt.h (struct TsmConnectionHttp): Add cache_conns
flag and use bitfields.
* tsmConnectionParams.h (TSM_PARAM_CACHE_CONNS): New flag.
* tsmConnectionParamsInt.h (struct TsmConnectionParamsStruct): Add
cache_conns flag associated with TSM_PARAM_CACHE_CONNS
* tsmConnection_web.c (tsmConnect_web): Use TSM_PARAM_CACHE_CONNS
and param->cache_conns to initialize cache_conns
* tsmUrlToFile.c (tsmOpenHttpConnection): Optionally cache
connection based on value of connect->cache_conns.
2000-04-24 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmUrlToFile.c (tsmOpenHttpConnection): Use ASYNC mode.
Expand buffer to 16K. Call http_trans_buf_reset() to clean up
between requests.
(tsmCloseHTTPConnection): Correct Doc++ comment.
(tsmReadHttpFile): Check for a "Connection: close" reponse from
server and close connection if seen.
* TsTileSpecOut.c (tspSaveTspec): Comment out unused funcName.
* tsmArg.c (tsmParseVRMLArgs): Comment out unused funcName.
* tsmChecksum.c (tsmUpdateTileStats, tsmChecksumPyramid_col):
Comment out unused funcName.
* tsmConnection.c (tsmDisconnect): Comment out unused funcName.
* tsmConnectionParams.c (tsmPrintParams): Comment out unused
funcName.
* tsmCreate_LAS.c (tsmCreateLevelTiles_LASRGB): Remove unused vars.
* tsmCreate_RAW.c (tsmReadRow_RAW): Comment out unused funcName.
* tsmEmulate_local.c (tsmIsTIFFPresent_local): Comment out unused
funcName.
* tsmEmulate_web.c (tsmIsTIFFPresent_web): Comment out unused
funcName.
* tsmImageUtils.c (tsmRgbBufferToGifFile): Comment out unused
funcName.
* tsmMem.c (tsmMemManagerFree): Comment out unused funcName.
* tsmPyramidInfo.c (tsmPrintServerGroup, tsmPrintPyramidInfo):
Comment out unused funcName.
* tsmTspecUtils.c (fprint_Purl, fprint_IdentityTspec,
fprint_TileTspec, fprint_CoordTspec, fprint_PixelTspec,
fprint_ImageTransformationTspec, fprint_ProjectionTspec,
fprint_SimpleTileSet, fprint_Pyramid, fprint_NameUrlPairs,
check_TileTspec_for_strings, check_CoordTspec_for_strings,
check_PixelTspec_for_strings,
check_ImageTransformationTspec_for_strings,
check_ProjectionTspec_for_strings): Comment out unused funcName.
* tsmTspec_web.c (tsmReadTspec_web): Comment out unused funcName.
* tsmUTM.c (projection_limit_check): Remove unused var
* tsmUtils.c (tsmCheckString): Comment out unused funcName.
* tsmVRML.c (tsmWriteGeotile): Make funcName static.
* tsmVRMLUtils.c (tsmVRMLCacheAdd): Remove unused vars.
(tsmTileElev): Comment out unused funcName.
Sun Apr 23 14:55:09 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmCreate.c (tsmInitTileParams): set the default DEM tile size
to be 128 x 128.
* tsmCreate_RAW.c (tsmCreateLevelTiles_generic): calculate the
tile size based upon the pyramid's pixel dimensions not those of
the input data
* TsTileSpecGen.c (tspCreatePyramid): set tspec pixel info to a
default value (e.g. 1 comp of 4 bytes) and don't use the values
from the params structures as these as for the input data not the
output pyramid.
* tsmChecksum.c (tsmCalcTileStats): added code to calculate the
min/max tile values for 2-byte input data.
2000-04-13 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmUrlToFile.c (tsmOpenHttpConnection): Use HTTP_TRANS_SYNC
mode. Identify connection in TSMTRACE.
(tsmCloseHttpConnection): Identify connection in TSMTRACE.
(tsmCloseStream): Pass funcName to TSMTRACE
Thu Apr 6 16:48:45 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmUrlToFile.c (tsmOpenHttpConnection): disabled the http
connection caching for the time being - it doesn't work on avila
for some reason - need to investigate this further!!
* tsmTile_web.c (tsmReadNextTile_web): create a URL that will use
the Apache mod on the server (if installed), otherwise stick with
the old cgi-bin style URL.
* tsmConnection_web.c (tsmConnect_web): remove the code that
checks for the existence of tile formats over the web - this is
done by the apache mod/cgi script.
(tsmConnect_web): check whether the http server has the
mod_terravision Apache mod installed
2000-04-06 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmTile_local.c: Include <prerror.h>
(tsmReadNextTile_local): Check for PR_PENDING_INTERRUPT_ERROR on
failure and return TSM_NODATA.
* tsmTile_web.c: Include <prerror.h>
(tsmReadNextTile_web): Check for PR_PENDING_INTERRUPT_ERROR on
failure and return TSM_NODATA.
2000-04-06 Lee Iverson <leei@Canada.AI.SRI.COM>
* tsmConnection.c (tsmGet, tsmDescribeConnection): Move
DPSS-specific variables inside #ifdef region.
(tsmConnectionType): Remove unused vars.
* tsmCreate_PBM.c (tsmParseCreateParams_PPM,
tsmParseCreateParams_PGM): Remove unused vars.
* tsmDatabase.c (tsmAppendDataSet, tsmPersistDatabase,
tsmIsFootprintInside, tsmCalcFootprintFromXform,
tsmUpdateDatabaseFromServerCB, tsmRemoveMapFromDatabase,
tsmRemoveModelFromDatabase): Remove unused vars.
(tsmUpdateDatabaseFromServerCB): Move fast_dpss check inside DPSS
ifdefed region.
* tsmDatabase_local.c (tsmReadDatabase_local): Remove unused vars.
Delete #if 0 section.
* tsmPyramidInfo_local.c (tsmReadNameUrlIds): Remove unused vars.
* tsmTile.c (tsmTileReqEnd): Remove unused vars.
* tsmTile_local.c (tsmReadTIFF_local): Remove unused vars.
(tsmWriteTIFF_local): Ditto.
* tsmTspec_web.c (tsmReadTspecNEW_web): Remove unused tmpPathName
* tsmUrlToFile.c (tsmUrlToTempFile): Remove unused vars.
(tsmOpenStream): Add funcName to TSMTRACE().
* tsmUrlToFile.c (tsmFilenameFromHandle): Correct usage of
list_next() and list_delete()
Wed Apr 5 15:43:06 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* TsTileSpecGen.c (tspCreatePyramid): changed the behaviour of how
many levels to create. Previously we created levels until the
lowest res version fitted inside a 32x32 tile. This is no longer a
requirement, so now we go down until the lowest version fits
inside a single tile of the dimensions set for that dataset,
e.g. 128x128 for OIs by default.
* tsmCreate_RAW.c (tsmCreateLevelTiles_generic): minor fix for
dealing with arbitrary tile sizes
* tsmUrlToFile.c (tsmReadHttpFile): explicitly set the HTTP
version number of GETs/HEADs to 1.1
* TsTileSpecGen.c (tspCreatePyramid): no longer hardcoded to
128x128 for OIs and 32x32 for DEMs. Accepts a TsmTileParams
structure and sets up the tile dimensions from that.
Fri Mar 17 09:23:31 2000 <reddy@MAGNOLIA>
* tsmUrlToFile.c (tsmReadHttpFile): move range string to top of
function otherwise it is destroyed before we are finished with its
value
(tsmReadHttpFile): only read the body if we doing a GET
* tsmPurl.c (tsmFilenameToUrl): don't assume that getcwd() returns
a string starting with '/'. This is not the case under Windows.
Thu Mar 16 09:45:13 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmUrlToFile.c: updated all http routines to use the low-level
ghttp functions.
Wed Mar 15 16:15:31 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmConnection_web.c (tsmDisconnect_web): if we have an http
connection open, then close it.
* tsmConnection.c (tsmDisconnect): call the new HTTP disconnect
function when closing a connection
Mon Mar 06 00:40:31 2000 <reddy@MAGNOLIA>
* tsmTile_web.c (tsmReadNextTile_web): include the port number in
the http URL to the server's get_http_tile CGI entry point.
(tsmCheckTileFormat_web): include the port number in the test for
whether a file exists at the specified URL
(tsmCheckTIFFFormat_web): ditto
Thu Mar 2 17:15:48 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* configure.in (ac_cv_have_dash_pthread): removed libwww and ghttp
from the command line
Tue Feb 29 18:24:56 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmUtils.c (tsmMakeDirIfNotExist): should check for
PR_GetFileInfo returning a value NOT equal to PR_SUCCESS in order
to create the directory structure (logic was inverted).
2000-02-11 Lee Iverson <leei@Canada.AI.SRI.COM>
* configure.in: Remove check for ../thread/pthread.h
* configure, config.h.in: Regen
Thu Jan 27 10:59:06 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmUrlToFile.c (tsmInitHttp): initialise out http PRLock
(tsmCleanupHttp): destroy our http PRLock
(tsmSetHttpProxy): enclose the mechanics of this function inside a
PR_Lock...PR_Unlock block because libwww is not thread safe
(tsmUrlToMemory): ditto on the locking to maintain thread safe
(tsmUrlToBuffer): ditto on the locking to maintain thread safe
(tsmUrlMimeType): ditto on the locking to maintain thread safe
* tsmTile_web.c (tsmReadNextTile_web): use the new tsmUrlToBuffer
call to read an http tile into memory
(tsmCheckTileFormat_web): use the new tsmUrlExists call to check
the tile format of the remote dataset
(tsmCheckTIFFFormat_web): use the new tsmUrlExists call to check
for the specific TIFF image on an http server
* tsmUrlToFile.c (tsmUrlToFile): [new func] takes an http url and
downloads it to a file on local disk using the libwww routines.
(tsmUrlToBuffer): [new func] loads an http url to a preallocated
buffer, with the ability to specify a maximum number of bytes to
read.
(tsmUrlMimeType): [new func] performs a HEAD request on the URL
and returns its MIME type using libwww
(tsmUrlExists): [new func] checks to see if a valid file exists at
the end of a URL (not exist means MIME type = "www/unknown").
(tsmHttpUrlToFile): [deleted]
(tsmHttpUrlToBuffer): [deleted]
(tsmHttpUrlFd): [deleted]
(tsmHttpFdToStream): [deleted]
(tsmSkipHttpHeader): [deleted]
(tsmSkipHttpHeaderFd): [deleted]
(tsmSocketRequestFd): [deleted]
(tsmFileDescToFile): [deleted]
(tsmFileDescToBuffer): [deleted]
Wed Jan 26 17:17:59 2000 Martin Reddy <reddy@Lomond.AI.SRI.COM>
* tsmUrlToFile.c (tsmInitHttp): [new func] initialises the libwww
library (if not already initialised)
(tsmCleanupHttp): [new func] closes down the libwww (if previously
inited)
(tsmSetHttpProxy): [new func] set and remove a proxy server for all
http accesses
(tsmUrlToMemory): [new func] uses libwww to download a file from
an http server into memory. Returns the buffer and its size.
* tsmUtils.c: change name of our HTTP define to USE_HTTP in order
to avoid conflict with a definition in libwww
* tsmConnection_web.c: ditto
* tsmEmulate_web.c: ditto
* tsmLocalDbase_web.c: ditto
* tsmPyramidInfo_web.c: ditto
* tsmTile_web.c: ditto
* tsmTspec_web.c: ditto
* configure.in: added libwww include files to the compile line for
tsmApi
Tue Jan 18 17:16:03 2000 <reddy@MAGNOLIA>
* tsmUrlToFile.c (tsmAddHandle): remembers a FILE stream and
filename pair.
(tsmFilenameFromHandle): returns a filename given a FILE stream,
as previously supplied to tsmAddHandle
(tsmHttpFdToStream): remember the name of the temp file that we
create when we pull the http file over to localdisk
(tsmCloseStream): delete the temp file associate with this handle
(if there is one)
Fri Jan 14 11:07:21 2000 <reddy@MAGNOLIA>
* tsmPurl.c (tsmParseUrl): update to support Windows style full
paths, e.g. C:/foo. This involves correctly realizing that C:/ is
not a full URL with an unknown protocol (http://), that this is
the root directory and doesn't need a '/' prefixed, as well as
converting '\' style slashes to '/'.
Thu Jan 06 15:21:07 2000 Martin Reddy <reddy@MAGNOLIA>
* tsmUrlToFile.c (tsmSocketRequestFd): don't do an htons on the
port. This caused http streams to not work on the PC. Also, the
3rd param of PR_Connect is a timeout not a byte size.
Tue Jan 4 09:44:26 2000 Martin Reddy <reddy@Lomond.AI.S