1064bab1dSCameron Smith #include <stdio.h> 2064bab1dSCameron Smith #include <stdlib.h> 3064bab1dSCameron Smith #include <string> 4d1293ce9SCameron Smith #include "phIO.h" 5d1293ce9SCameron Smith #include "phComm.h" 6064bab1dSCameron Smith #include "phio_base.h" 7064bab1dSCameron Smith #include "phio_sync.h" 8064bab1dSCameron Smith #include "phio_posix.h" 9f262839cSCameron Smith 1082f286aaSCameron Smith void phio_readheader( 11064bab1dSCameron Smith phio_fp f, 12d1293ce9SCameron Smith const char keyphrase[], 13d1293ce9SCameron Smith void* valueArray, 14d1293ce9SCameron Smith int* nItems, 15d1293ce9SCameron Smith const char datatype[], 16d1293ce9SCameron Smith const char iotype[] ) { 17064bab1dSCameron Smith f->ops->readheader(f->file, keyphrase, valueArray, 18064bab1dSCameron Smith nItems, datatype, iotype); 19d1293ce9SCameron Smith } 20fa18c524SCameron Smith void phio_writeheader( 21*57517afcSCameron Smith phio_fp f, 22fa18c524SCameron Smith const char keyphrase[], 23fa18c524SCameron Smith const void* valueArray, 24fa18c524SCameron Smith const int* nItems, 25fa18c524SCameron Smith const int* ndataItems, 26fa18c524SCameron Smith const char datatype[], 27fa18c524SCameron Smith const char iotype[] ) { 28*57517afcSCameron Smith f->ops->writedatablock(f->file, keyphrase, valueArray, 29*57517afcSCameron Smith nItems, datatype, iotype); 30fa18c524SCameron Smith } 31f262839cSCameron Smith void phio_readdatablock( 32064bab1dSCameron Smith phio_fp f, 33f262839cSCameron Smith const char keyphrase[], 34f262839cSCameron Smith void* valueArray, 35f262839cSCameron Smith int* nItems, 36f262839cSCameron Smith const char datatype[], 37f262839cSCameron Smith const char iotype[] ) { 38064bab1dSCameron Smith f->ops->readdatablock(f->file, keyphrase, valueArray, 39064bab1dSCameron Smith nItems, datatype, iotype); 40f262839cSCameron Smith } 4166a3fa2cSCameron Smith void phio_writedatablock( 4266a3fa2cSCameron Smith const int* fileDescriptor, 4366a3fa2cSCameron Smith const char keyphrase[], 4466a3fa2cSCameron Smith const void* valueArray, 4566a3fa2cSCameron Smith const int* nItems, 4666a3fa2cSCameron Smith const char datatype[], 4766a3fa2cSCameron Smith const char iotype[]) { 4866a3fa2cSCameron Smith } 4992bfab9aSCameron Smith void phio_openfile_read( 5082f286aaSCameron Smith const char filename[], 5192bfab9aSCameron Smith int* numFiles, 52064bab1dSCameron Smith phio_fp* fileDescriptor) { 53064bab1dSCameron Smith std::string fn(filename); 54064bab1dSCameron Smith std::string syncSuffix("-dat"); 55064bab1dSCameron Smith std::string posixSuffix(".dat"); 56064bab1dSCameron Smith if( fn.find(syncSuffix) != std::string::npos ) 57064bab1dSCameron Smith sync_openfile_read(filename, numFiles, fileDescriptor); 58064bab1dSCameron Smith else if( fn.find(posixSuffix) != std::string::npos ) 59*57517afcSCameron Smith posix_openfile_read(filename, fileDescriptor); 60064bab1dSCameron Smith else { 61064bab1dSCameron Smith fprintf(stderr, 62064bab1dSCameron Smith "type of file %s is unknown... exiting\n", filename); 63064bab1dSCameron Smith exit(1); 6492bfab9aSCameron Smith } 65064bab1dSCameron Smith } 6692bfab9aSCameron Smith void phio_openfile_write( 6792bfab9aSCameron Smith const char filename[], 6882f286aaSCameron Smith int* numFiles, 69ade0e30fSCameron Smith int* numFields, 70ade0e30fSCameron Smith int* numPPF, 71*57517afcSCameron Smith phio_fp* fileDescriptor) { 72*57517afcSCameron Smith std::string fn(filename); 73*57517afcSCameron Smith std::string syncSuffix("-dat"); 74*57517afcSCameron Smith std::string posixSuffix(".dat"); 75*57517afcSCameron Smith if( fn.find(syncSuffix) != std::string::npos ) 76*57517afcSCameron Smith sync_openfile_write(filename, numFiles, numFields, numPPF, fileDescriptor); 77*57517afcSCameron Smith else if( fn.find(posixSuffix) != std::string::npos ) 78*57517afcSCameron Smith posix_openfile_write(filename, fileDescriptor); 79*57517afcSCameron Smith else { 80*57517afcSCameron Smith fprintf(stderr, 81*57517afcSCameron Smith "type of file %s is unknown... exiting\n", filename); 82*57517afcSCameron Smith exit(1); 83*57517afcSCameron Smith } 8482f286aaSCameron Smith } 8582f286aaSCameron Smith void phio_restartname(int* step, char* filename) { 8682f286aaSCameron Smith } 87064bab1dSCameron Smith void phio_closefile_read(phio_fp f) { 88064bab1dSCameron Smith f->ops->closefile_read(f); 89a7c8a483SCameron Smith } 90*57517afcSCameron Smith void phio_closefile_write(phio_fp f) { 91*57517afcSCameron Smith f->ops->closefile_write(f); 92a7c8a483SCameron Smith } 93064bab1dSCameron Smith 94