1064bab1dSCameron Smith #include <stdio.h> 2064bab1dSCameron Smith #include <stdlib.h> 336adee64SCameron Smith #include <cstring> 4064bab1dSCameron Smith #include <string> 536adee64SCameron Smith #include <sstream> 6d1293ce9SCameron Smith #include "phIO.h" 7d1293ce9SCameron Smith #include "phComm.h" 8064bab1dSCameron Smith #include "phio_base.h" 9f262839cSCameron Smith 10d7abaf6cSCameron Smith #ifdef __cplusplus 11d7abaf6cSCameron Smith extern "C" { 12d7abaf6cSCameron Smith #endif 13d7abaf6cSCameron Smith 1482f286aaSCameron Smith void phio_readheader( 15064bab1dSCameron Smith phio_fp f, 16d1293ce9SCameron Smith const char keyphrase[], 17d1293ce9SCameron Smith void* valueArray, 18d1293ce9SCameron Smith int* nItems, 19d1293ce9SCameron Smith const char datatype[], 20d1293ce9SCameron Smith const char iotype[] ) { 21064bab1dSCameron Smith f->ops->readheader(f->file, keyphrase, valueArray, 22064bab1dSCameron Smith nItems, datatype, iotype); 23d1293ce9SCameron Smith } 24fa18c524SCameron Smith void phio_writeheader( 2557517afcSCameron Smith phio_fp f, 26fa18c524SCameron Smith const char keyphrase[], 27fa18c524SCameron Smith const void* valueArray, 28fa18c524SCameron Smith const int* nItems, 29fa18c524SCameron Smith const int* ndataItems, 30fa18c524SCameron Smith const char datatype[], 31fa18c524SCameron Smith const char iotype[] ) { 329ec3dd51SCameron Smith f->ops->writeheader(f->file, keyphrase, valueArray, 339ec3dd51SCameron Smith nItems, ndataItems, datatype, iotype); 34fa18c524SCameron Smith } 35f262839cSCameron Smith void phio_readdatablock( 36064bab1dSCameron Smith phio_fp f, 37f262839cSCameron Smith const char keyphrase[], 38f262839cSCameron Smith void* valueArray, 39f262839cSCameron Smith int* nItems, 40f262839cSCameron Smith const char datatype[], 41f262839cSCameron Smith const char iotype[] ) { 42064bab1dSCameron Smith f->ops->readdatablock(f->file, keyphrase, valueArray, 43064bab1dSCameron Smith nItems, datatype, iotype); 44f262839cSCameron Smith } 4566a3fa2cSCameron Smith void phio_writedatablock( 469ec3dd51SCameron Smith phio_fp f, 4766a3fa2cSCameron Smith const char keyphrase[], 4866a3fa2cSCameron Smith const void* valueArray, 4966a3fa2cSCameron Smith const int* nItems, 5066a3fa2cSCameron Smith const char datatype[], 5166a3fa2cSCameron Smith const char iotype[]) { 529ec3dd51SCameron Smith f->ops->writedatablock(f->file, keyphrase, valueArray, 539ec3dd51SCameron Smith nItems, datatype, iotype); 5466a3fa2cSCameron Smith } 55ab645d52SCameron Smith 56ab645d52SCameron Smith void phio_constructName( 57*a93de25bSCameron Smith phio_fp f, 58ab645d52SCameron Smith const char inName[], 59ab645d52SCameron Smith char* outName) { 60*a93de25bSCameron Smith f->ops->constructname(inName, outName); 61ab645d52SCameron Smith } 62ab645d52SCameron Smith 63ab645d52SCameron Smith void phio_openfile( 6482f286aaSCameron Smith const char filename[], 65ab645d52SCameron Smith phio_fp f) { 66ab645d52SCameron Smith f->ops->openfile(filename, f); 6792bfab9aSCameron Smith } 68ab645d52SCameron Smith 69ab645d52SCameron Smith void phio_closefile(phio_fp f) { 70ab645d52SCameron Smith f->ops->closefile(f); 71064bab1dSCameron Smith } 72ab645d52SCameron Smith 73e81a6dc1SCameron Smith void phio_appendInt(char* dest, int v) { 7436adee64SCameron Smith std::stringstream ss; 7536adee64SCameron Smith ss << dest << v << '.'; 7636adee64SCameron Smith std::string s = ss.str(); 7736adee64SCameron Smith strcpy(dest, s.c_str()); 7836adee64SCameron Smith } 79d7abaf6cSCameron Smith 80d7abaf6cSCameron Smith #ifdef __cplusplus 81d7abaf6cSCameron Smith } 82d7abaf6cSCameron Smith #endif 83