- Timestamp:
- 02/11/11 14:49:41 (7 months ago)
- Location:
- trunk
- Files:
-
- 5 edited
-
include/napi.h (modified) (2 diffs)
-
src/napi.c (modified) (2 diffs)
-
src/napi4.c (modified) (1 diff)
-
src/napi5.c (modified) (3 diffs)
-
src/nxxml.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/napi.h
r1687 r1728 4 4 Application Program Interface Header File 5 5 6 Copyright (C) 2000-20 07Mark Koennecke, Uwe Filges6 Copyright (C) 2000-2011 Mark Koennecke, Uwe Filges 7 7 8 8 This library is free software; you can redistribute it and/or … … 904 904 NXstatus ( *nxsetnumberformat)(NXhandle handle, int type, char *format); 905 905 NXstatus ( *nxprintlink)(NXhandle handle, NXlink* link); 906 NXstatus ( *nxnativeexternallink)(NXhandle handle, CONSTCHAR* name, CONSTCHAR* externalfile, CONSTCHAR* remotetarget); 906 907 } NexusFunction, *pNexusFunction; 907 908 /*---------------------*/ -
trunk/src/napi.c
r1687 r1728 1323 1323 } 1324 1324 /*------------------------------------------------------------------------*/ 1325 NXstatus NXlinkexternal(NXhandle fid, CONSTCHAR *name, CONSTCHAR *nxclass, 1326 CONSTCHAR *url){ 1327 int status, type = NX_CHAR, length;1325 NXstatus NXlinkexternal(NXhandle fid, CONSTCHAR *name, CONSTCHAR *nxclass, CONSTCHAR *url){ 1326 int status, type = NX_CHAR, length=1024, urllen; 1327 char nxurl[1024], exfile[512], expath[512]; 1328 1328 pNexusFunction pFunc = handleToNexusFunc(fid); 1329 1330 // in HDF5 we support external linking natively 1331 if (pFunc->nxnativeexternallink != NULL) { 1332 urllen = strlen(url); 1333 memset(nxurl, 0, length); 1334 if(urllen > length){ 1335 urllen = length - 1; 1336 } 1337 memcpy(nxurl, url, urllen); 1338 status = analyzeNapimount(nxurl,exfile,511,expath,511); 1339 if(status != NX_OK){ 1340 return status; 1341 } 1342 status = LOCKED_CALL(pFunc->nxnativeexternallink(pFunc->pNexusData, name, exfile, expath)); 1343 if(status != NX_OK){ 1344 return status; 1345 } 1346 return NX_OK; 1347 } 1348 1349 NXMDisableErrorReporting(); 1350 LOCKED_CALL(pFunc->nxmakegroup(pFunc->pNexusData,name,nxclass)); 1351 NXMEnableErrorReporting(); 1329 1352 1330 1353 status = LOCKED_CALL(pFunc->nxopengroup(pFunc->pNexusData,name,nxclass)); … … 1343 1366 NXstatus NXlinkexternaldataset(NXhandle fid, CONSTCHAR *name, 1344 1367 CONSTCHAR *url){ 1345 int status, type = NX_CHAR, length; 1368 int status, type = NX_CHAR, length=1024, urllen; 1369 char nxurl[1024], exfile[512], expath[512]; 1346 1370 pNexusFunction pFunc = handleToNexusFunc(fid); 1347 1371 int64_t rank = 1; 1348 1372 int64_t dims[1] = {1}; 1349 1373 1374 //TODO cut and paste 1375 1376 // in HDF5 we support external linking natively 1377 if (pFunc->nxnativeexternallink != NULL) { 1378 urllen = strlen(url); 1379 memset(nxurl, 0, length); 1380 if(urllen > length){ 1381 urllen = length - 1; 1382 } 1383 memcpy(nxurl, url, urllen); 1384 status = analyzeNapimount(nxurl,exfile,511,expath,511); 1385 if(status != NX_OK){ 1386 return status; 1387 } 1388 status = LOCKED_CALL(pFunc->nxnativeexternallink(pFunc->pNexusData, name, exfile, expath)); 1389 if(status != NX_OK){ 1390 return status; 1391 } 1392 return NX_OK; 1393 } 1394 1395 1350 1396 status = LOCKED_CALL(pFunc->nxmakedata64(pFunc->pNexusData, name, NX_CHAR, rank, dims)); 1351 1397 if(status != NX_OK){ -
trunk/src/napi4.c
r1673 r1728 1978 1978 fHandle->nxinitattrdir=NX4initattrdir; 1979 1979 fHandle->nxprintlink=NX4printlink; 1980 fHandle->nxnativeexternallink=NULL; 1980 1981 } 1981 1982 -
trunk/src/napi5.c
r1687 r1728 2012 2012 } 2013 2013 2014 iRet =H5Aclose(pFile->iCurrentA);2014 H5Aclose(pFile->iCurrentA); 2015 2015 2016 2016 killAttVID(pFile,vid); … … 2081 2081 } 2082 2082 2083 /* ------------------------------------------------------------------- */ 2084 2085 NXstatus NX5nativeexternallink(NXhandle fileid, const char* name, const char* externalfile, const char* remotetarget) 2086 { 2087 herr_t iRet; 2088 pNexusFile5 pFile; 2089 2090 pFile = NXI5assert(fileid); 2091 iRet = H5Lcreate_external(externalfile, remotetarget, pFile->iFID, name, H5P_DEFAULT, H5P_DEFAULT); 2092 if (iRet < 0) { 2093 NXReportError("ERROR: making external link failed"); 2094 return NX_ERROR; 2095 } 2096 return NX_OK; 2097 } 2083 2098 /* ------------------------------------------------------------------- */ 2084 2099 … … 2147 2162 fHandle->nxinitattrdir=NX5initattrdir; 2148 2163 fHandle->nxprintlink=NX5printlink; 2164 fHandle->nxnativeexternallink=NX5nativeexternallink; 2149 2165 } 2150 2166 -
trunk/src/nxxml.c
r1673 r1728 1968 1968 fHandle->nxsetnumberformat=NXXsetnumberformat; 1969 1969 fHandle->nxprintlink=NXXprintlink; 1970 fHandle->nxnativeexternallink=NULL; 1970 1971 } 1971 1972
Note: See TracChangeset
for help on using the changeset viewer.
