You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.7 KiB
116 lines
2.7 KiB
/**
|
|
* @file common_itk_util.cpp
|
|
* @brief itk warpper utility function
|
|
* @author James
|
|
* @history
|
|
* ===================================================================================
|
|
* Date Name Description of Change
|
|
* 18-July-2008 James
|
|
*/
|
|
|
|
#pragma warning (disable: 4996)
|
|
#pragma warning (disable: 4819)
|
|
|
|
|
|
#include <tccore/imantype.hxx>
|
|
#include <ae/datasettype.h>
|
|
#include <time.h>
|
|
#include<tc/tc_macros.h>
|
|
#include <tccore/tctype.h>
|
|
#include<tccore/workspaceobject.h>
|
|
#include "error_handling.h"
|
|
#include "common_itk_util.h"
|
|
|
|
int FindDatasetReferenceExt( tag_t datasettype, const char *datasettype_ref, char ext[10] )
|
|
{
|
|
if( datasettype_ref == NULL || ext == NULL )
|
|
return -1;
|
|
|
|
strcpy( ext, "" );
|
|
|
|
int ref_count = 0, i;
|
|
char **ref_templates = NULL, **ref_formats = NULL;
|
|
ITKCALL( AE_ask_datasettype_file_refs( datasettype, datasettype_ref,
|
|
&ref_count, &ref_templates, &ref_formats ) );
|
|
for( i=0; i<ref_count; i++ )
|
|
{
|
|
if( stricmp( ref_formats[i], "BINARY" ) == 0 )
|
|
break;
|
|
}
|
|
|
|
if( i<ref_count )
|
|
{
|
|
strcpy( ext, ref_templates[i] + 2 );
|
|
}
|
|
|
|
MEM_free( ref_templates );
|
|
MEM_free( ref_formats );
|
|
|
|
return ITK_ok;
|
|
}
|
|
|
|
int CompareDate( date_t date1, date_t date2 )
|
|
{
|
|
int comp_ret = 0;
|
|
char str_date1[30] = "";
|
|
char str_date2[30] = "";
|
|
|
|
sprintf( str_date1, "%d%2d%2d%2d%2d%2d", date1.year, date1.month, date1.day,
|
|
date1.hour, date1.minute, date1.second );
|
|
sprintf( str_date2, "%d%2d%2d%2d%2d%2d", date2.year, date2.month, date2.day,
|
|
date2.hour, date2.minute, date2.second );
|
|
|
|
comp_ret = strcmp( str_date1, str_date2 );
|
|
return comp_ret;
|
|
}
|
|
|
|
int GetRandomTempFile( char tempFile[256] )
|
|
{
|
|
time_t now;
|
|
srand( (unsigned)time(&now) );
|
|
struct tm *p = localtime(&now);
|
|
|
|
sprintf( tempFile, "TEMP%d%d%d%d%d%d-%d", p->tm_year+1900, p->tm_mon+1,
|
|
p->tm_yday, p->tm_hour, p->tm_min, p->tm_sec, rand() );
|
|
return 0;
|
|
}
|
|
|
|
logical IsItemRevisionType( char object_type[WSO_name_size_c + 1] )
|
|
{
|
|
logical is_rev = FALSE;
|
|
|
|
tag_t cur_type = NULLTAG, parent_type = NULLTAG, temp_type = NULLTAG;
|
|
//ITKCALL( IMANTYPE_find_type( object_type, NULL, &cur_type ) );
|
|
ITKCALL(TCTYPE_find_type(object_type, "", &cur_type));
|
|
|
|
parent_type = cur_type;
|
|
temp_type = cur_type;
|
|
|
|
do
|
|
{
|
|
if( cur_type != NULLTAG )
|
|
{
|
|
char* cur_type_name = NULL;
|
|
ITKCALL(TCTYPE_ask_name2( cur_type, &cur_type_name ) );
|
|
//TC8===================
|
|
//if( stricmp( cur_type_name, "ItemRevision" ) == 0 )
|
|
if( strstr( cur_type_name, "Revision" ) != 0 )
|
|
{
|
|
is_rev = TRUE;
|
|
break;
|
|
}
|
|
else {}
|
|
}
|
|
|
|
ITKCALL(TCTYPE_ask_parent_type( cur_type, &temp_type ) );
|
|
if( temp_type != NULLTAG )
|
|
parent_type = temp_type;
|
|
cur_type = parent_type;
|
|
} while ( temp_type != NULLTAG );
|
|
|
|
return is_rev;
|
|
}
|
|
|
|
|
|
|