tpi_IDs.cc File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <tpi_IDs.h>

Go to the source code of this file.

Functions

tpi_channelID * tpi_channelID_allocate (statusMessageReporting *smr)
int tpi_channelID_initialize (statusMessageReporting *, tpi_channelID *channelID)
void * tpi_channelID_free (statusMessageReporting *smr, tpi_channelID *channelID)
int tpi_channelID_release (statusMessageReporting *smr, tpi_channelID *channelID)
tpi_channelID * tpi_channelID_parse (statusMessageReporting *smr, char const *str, char **EOP)
int tpi_channelID_toString (statusMessageReporting *smr, tpi_channelID *channelID, gString *gStr)
int tpi_channelID_toStringSanRevision (statusMessageReporting *smr, tpi_channelID *channelID, gString *gStr)
int tpi_channelID_toStringSans (statusMessageReporting *smr, tpi_channelID *channelID, gString *gStr, char *sans[])
tpi_spectralID * tpi_spectralID_allocate (statusMessageReporting *smr)
int tpi_spectralID_initialize (statusMessageReporting *, tpi_spectralID *spectralID)
void * tpi_spectralID_free (statusMessageReporting *smr, tpi_spectralID *spectralID)
int tpi_spectralID_release (statusMessageReporting *smr, tpi_spectralID *spectralID)
tpi_spectralID * tpi_spectralID_parse (statusMessageReporting *smr, char const *str, char **EOP)
int tpi_spectralID_toString (statusMessageReporting *smr, tpi_spectralID *spectralID, gString *gStr)
int tpi_spectralID_toStringSanRevision (statusMessageReporting *smr, tpi_spectralID *spectralID, gString *gStr)
int tpi_spectralID_toStringSans (statusMessageReporting *smr, tpi_spectralID *spectralID, gString *gStr, char *sans[])
char const * tpi_misc_firstNonWhiteSpace (statusMessageReporting *, char const *str)
char * tpi_misc_allocateAndCopyNCharacters (statusMessageReporting *smr, char const *str, int n)


Function Documentation

tpi_channelID* tpi_channelID_allocate ( statusMessageReporting *  smr  ) 

Definition at line 53 of file tpi_IDs.cc.

References tpi_channelID_initialize().

00053                                                                      {
00054 
00055     tpi_channelID *channelID;
00056 
00057     //if( ( channelID = xData_malloc2( smr, sizeof( tpi_channelID ), 0, "channelID" ) ) == NULL ) return( NULL );
00058     if( ( channelID = (tpi_channelID*) xData_malloc2( smr, sizeof( tpi_channelID ), 0, "channelID" ) ) == NULL ) return( NULL );
00059     tpi_channelID_initialize( smr, channelID );
00060     return( channelID );
00061 }

void* tpi_channelID_free ( statusMessageReporting *  smr,
tpi_channelID *  channelID 
)

Definition at line 74 of file tpi_IDs.cc.

References tpi_channelID_release(), and xData_free().

Referenced by tpi_spectralID_release().

00074                                                                                   {
00075 
00076     if( channelID != NULL ) {
00077         tpi_channelID_release( smr, channelID );
00078         xData_free( smr, channelID );
00079     }
00080     return( NULL );
00081 }

int tpi_channelID_initialize ( statusMessageReporting *  ,
tpi_channelID *  channelID 
)

Definition at line 66 of file tpi_IDs.cc.

Referenced by tpi_channelID_allocate(), and tpi_channelID_release().

00066                                                                                    {
00067 
00068     memset( channelID, 0, sizeof( tpi_channelID ) );
00069     return( 0 );
00070 }

tpi_channelID* tpi_channelID_parse ( statusMessageReporting *  smr,
char const *  str,
char **  EOP 
)

Definition at line 99 of file tpi_IDs.cc.

00099                                                                                                {
00100 
00101     return( _tpi_channelID_parse2( smr, str, str, 0, EOP ) );
00102 }

int tpi_channelID_release ( statusMessageReporting *  smr,
tpi_channelID *  channelID 
)

Definition at line 85 of file tpi_IDs.cc.

References tpi_channelID_initialize(), and tpi_spectralID_free().

Referenced by tpi_channelID_free().

00085                                                                                    {
00086 
00087     tpi_spectralID *spectralID, *next;
00088 
00089     for( spectralID = channelID->spectralIDs; spectralID != NULL; spectralID = next ) {
00090         next = spectralID->next;
00091         tpi_spectralID_free( smr, spectralID );
00092     }
00093     tpi_channelID_initialize( smr, channelID );
00094     return( 0 );
00095 }

int tpi_channelID_toString ( statusMessageReporting *  smr,
tpi_channelID *  channelID,
gString *  gStr 
)

Definition at line 138 of file tpi_IDs.cc.

References tpi_channelID_toStringSans().

00138                                                                                                    {
00139 
00140     return( tpi_channelID_toStringSans( smr, channelID, gStr, NULL ) );
00141 }

int tpi_channelID_toStringSanRevision ( statusMessageReporting *  smr,
tpi_channelID *  channelID,
gString *  gStr 
)

Definition at line 145 of file tpi_IDs.cc.

References tpi_channelID_toStringSans().

00145                                                                                                               {
00146 
00147     //char *sans[] = { "revision", NULL };
00148     char *sans[] = { (char*)"revision", NULL };
00149 
00150     return( tpi_channelID_toStringSans( smr, channelID, gStr, sans ) );
00151 }

int tpi_channelID_toStringSans ( statusMessageReporting *  smr,
tpi_channelID *  channelID,
gString *  gStr,
char *  sans[] 
)

Definition at line 155 of file tpi_IDs.cc.

References gString_addTo(), and tpi_spectralID_toStringSans().

Referenced by tpi_channelID_toString(), and tpi_channelID_toStringSanRevision().

00155                                                                                                                      {
00156 
00157     tpi_spectralID *spectralID;
00158 
00159     for( spectralID = channelID->spectralIDs; spectralID != NULL; spectralID = spectralID->next ) {
00160         if( ( tpi_spectralID_toStringSans( smr, spectralID, gStr, sans ) ) != 0 ) return( 1 );
00161         if( spectralID->next != NULL ) {
00162             if( ( gString_addTo( smr, gStr, " + " ) ) != 0 ) return( 1 );
00163         }
00164     }
00165     return( 0 );
00166 }

char* tpi_misc_allocateAndCopyNCharacters ( statusMessageReporting *  smr,
char const *  str,
int  n 
)

Definition at line 429 of file tpi_IDs.cc.

00429                                                                                                  {
00430 
00431     char *s;
00432 
00433     //if( ( s = xData_malloc2( smr, n + 1, 0, "s" ) ) == NULL ) return( NULL );
00434     if( ( s = (char*) xData_malloc2( smr, n + 1, 0, "s" ) ) == NULL ) return( NULL );
00435     strncpy( s, str, n );
00436     s[n] = 0;
00437     return( s );
00438 }

char const* tpi_misc_firstNonWhiteSpace ( statusMessageReporting *  ,
char const *  str 
)

Definition at line 419 of file tpi_IDs.cc.

00419                                                                                      {
00420 
00421     char const *s;
00422 
00423     for( s = str; ( *s != 0 ) && isspace( *s ); s++ ) ;
00424     return( s );
00425 }

tpi_spectralID* tpi_spectralID_allocate ( statusMessageReporting *  smr  ) 

Definition at line 170 of file tpi_IDs.cc.

References tpi_spectralID_initialize().

00170                                                                        {
00171 
00172     tpi_spectralID *spectralID;
00173 
00174     //if( ( spectralID = xData_malloc2( smr, sizeof( tpi_spectralID ), 1, "spectralID" ) ) == NULL ) return( NULL );
00175     if( ( spectralID = (tpi_spectralID*) xData_malloc2( smr, sizeof( tpi_spectralID ), 1, "spectralID" ) ) == NULL ) return( NULL );
00176     tpi_spectralID_initialize( smr, spectralID );
00177     return( spectralID );
00178 }

void* tpi_spectralID_free ( statusMessageReporting *  smr,
tpi_spectralID *  spectralID 
)

Definition at line 191 of file tpi_IDs.cc.

References tpi_spectralID_release(), and xData_free().

Referenced by tpi_channelID_release(), and tpia_particle_release().

00191                                                                                      {
00192 
00193     if( spectralID != NULL ) {
00194         tpi_spectralID_release( smr, spectralID );
00195         xData_free( smr, spectralID );
00196     }
00197     return( NULL );
00198 }

int tpi_spectralID_initialize ( statusMessageReporting *  ,
tpi_spectralID *  spectralID 
)

Definition at line 183 of file tpi_IDs.cc.

Referenced by tpi_spectralID_allocate(), and tpi_spectralID_release().

00183                                                                                       {
00184 
00185     memset( spectralID, 0, sizeof( tpi_spectralID ) );
00186     return( 0 );
00187 }

tpi_spectralID* tpi_spectralID_parse ( statusMessageReporting *  smr,
char const *  str,
char **  EOP 
)

Definition at line 218 of file tpi_IDs.cc.

Referenced by tpia_particle_getInternalID().

00218                                                                                                  {
00219 
00220     return( _tpi_spectralID_parse2( smr, str, str, EOP ) );
00221 }

int tpi_spectralID_release ( statusMessageReporting *  smr,
tpi_spectralID *  spectralID 
)

Definition at line 202 of file tpi_IDs.cc.

References tpi_channelID_free(), tpi_spectralID_initialize(), and xData_free().

Referenced by tpi_spectralID_free().

00202                                                                                       {
00203 
00204     tpi_spectralIDQualifier *qualifier, *next;
00205 
00206     if( spectralID->name != NULL ) free( spectralID->name );
00207     for( qualifier = spectralID->qualifiers; qualifier != NULL; qualifier = next ) {
00208         next = qualifier->next;
00209         xData_free( smr, qualifier );
00210     }
00211     if( spectralID->decayChannel != NULL ) tpi_channelID_free( smr, spectralID->decayChannel );
00212     tpi_spectralID_initialize( smr, spectralID );
00213     return( 0 );
00214 }

int tpi_spectralID_toString ( statusMessageReporting *  smr,
tpi_spectralID *  spectralID,
gString *  gStr 
)

Definition at line 353 of file tpi_IDs.cc.

References tpi_spectralID_toStringSans().

00353                                                                                                       {
00354 
00355     return( tpi_spectralID_toStringSans( smr, spectralID, gStr, NULL ) );
00356 }

int tpi_spectralID_toStringSanRevision ( statusMessageReporting *  smr,
tpi_spectralID *  spectralID,
gString *  gStr 
)

Definition at line 360 of file tpi_IDs.cc.

References tpi_spectralID_toStringSans().

00360                                                                                                                  {
00361 
00362     //char *sans[] = { "revision", NULL };
00363     char *sans[] = { (char*)"revision", NULL };
00364 
00365     return( tpi_spectralID_toStringSans( smr, spectralID, gStr, sans ) );
00366 }

int tpi_spectralID_toStringSans ( statusMessageReporting *  smr,
tpi_spectralID *  spectralID,
gString *  gStr,
char *  sans[] 
)

Definition at line 371 of file tpi_IDs.cc.

References gString_addTo().

Referenced by tpi_channelID_toStringSans(), tpi_spectralID_toString(), and tpi_spectralID_toStringSanRevision().

00371                                                                                                                         {
00372 
00373     tpi_spectralIDQualifier *qualifier;
00374     int i;
00375     char **san, *sSan[] = { NULL };
00376 
00377     if( sans == NULL ) sans = sSan;
00378     if( spectralID->decayChannel != NULL ) if( gString_addTo( smr, gStr, "(" ) != 0 ) return( 1 );
00379     if( ( gString_addTo( smr, gStr, spectralID->name ) ) != 0 ) return( 1 );
00380     if( spectralID->qualifiers != NULL ) {
00381         for( qualifier = spectralID->qualifiers, i = 0; qualifier != NULL; qualifier = qualifier->next ) i++;
00382         for( qualifier = spectralID->qualifiers; qualifier != NULL; qualifier = qualifier->next ) {
00383             for( san = (char **) sans; *san != NULL; san++ ) {
00384                 if( strcmp( *san, qualifier->name ) == 0 ) {
00385                     i--;
00386                     break;
00387                 }
00388             }
00389         }
00390         if( i > 0 ) {
00391             if( gString_addTo( smr, gStr, "[" ) != 0 ) return( 1 );
00392             for( qualifier = spectralID->qualifiers; qualifier != NULL; qualifier = qualifier->next ) {
00393                 for( san = (char **) sans; *san != NULL; san++ ) if( strcmp( *san, qualifier->name ) == 0 ) break;
00394                 if( *san != NULL ) continue;
00395                 if( gString_addTo( smr, gStr, qualifier->name ) != 0 ) return( 1 );
00396                 if( gString_addTo( smr, gStr, ":'" ) != 0 ) return( 1 );
00397                 if( gString_addTo( smr, gStr, qualifier->value ) != 0 ) return( 1 );
00398                 if( gString_addTo( smr, gStr, "'") != 0 ) return( 1 );
00399                 if( i == 1 ) {
00400                     if( gString_addTo( smr, gStr, "]" ) != 0 ) return( 1 ); }
00401                 else {
00402                     if( gString_addTo( smr, gStr, ", " ) != 0 ) return( 1 );
00403                 }
00404                 i--;
00405             }
00406         }
00407     }
00408     if( spectralID->decayChannel != NULL ) {
00409         if( ( gString_addTo( smr, gStr, " -> " ) ) != 0 ) return( 1 );
00410         if( ( tpi_channelID_toStringSans( smr, spectralID->decayChannel, gStr, sans ) ) != 0 ) return( 1 );
00411         if( ( gString_addTo( smr, gStr, ")" ) ) != 0 ) return( 1 );
00412     }
00413     return( 0 );
00414 }


Generated on Mon May 27 17:51:16 2013 for Geant4 by  doxygen 1.4.7