40#if defined(__BORLANDC__)
41#define _setmode(handle, amode) setmode(handle, amode)
50 bigEndian = (bool)SDDS_isBigEndianMachine();
55 additionalHeaderLines = 0;
57 descriptionText = NULL;
58 descriptionContents = NULL;
62 parameterObject = NULL;
66 error_description = NULL;
70 layoutVersion = SDDS_VERSION;
71 defaultIOBufferSize = 262144;
73 columnMajorOrder =
true;
76SDDSFile::SDDSFile(
char *filename) {
77 fileName = (
char*)SDDS_malloc(
sizeof(
char) * strlen(filename) + 1);
78 strcpy(fileName, filename);
79 bigEndian = (bool)SDDS_isBigEndianMachine();
84 additionalHeaderLines = 0;
86 descriptionText = NULL;
87 descriptionContents = NULL;
91 parameterObject = NULL;
95 error_description = NULL;
99 layoutVersion = SDDS_VERSION;
100 defaultIOBufferSize = 262144;
101 recoveryPossible = 0;
102 columnMajorOrder =
true;
105SDDSFile::SDDSFile(
bool binary) {
107 bigEndian = (bool)SDDS_isBigEndianMachine();
112 additionalHeaderLines = 0;
114 descriptionText = NULL;
115 descriptionContents = NULL;
119 parameterObject = NULL;
123 error_description = NULL;
127 layoutVersion = SDDS_VERSION;
128 defaultIOBufferSize = 262144;
129 recoveryPossible = 0;
130 columnMajorOrder =
true;
133SDDSFile::SDDSFile(
char *filename,
bool binary) {
134 fileName = (
char*)SDDS_malloc(
sizeof(
char) * strlen(filename) + 1);
135 strcpy(fileName, filename);
136 bigEndian = (bool)SDDS_isBigEndianMachine();
141 additionalHeaderLines = 0;
143 descriptionText = NULL;
144 descriptionContents = NULL;
148 parameterObject = NULL;
152 error_description = NULL;
156 layoutVersion = SDDS_VERSION;
157 defaultIOBufferSize = 262144;
158 recoveryPossible = 0;
159 columnMajorOrder =
true;
174void *SDDSFile_new(int32_t mode, ...) {
179 if (mode&SDDSFILE_NEW_WITH_FILENAME) {
180 if (mode&SDDSFILE_NEW_WITH_MODE) {
182 filename = va_arg(ap,
char *);
183 binary = va_arg(ap, int32_t);
184 if (binary == SDDS_ASCII)
186 return((
void*)
new SDDSFile(filename, binary));
189 filename = va_arg(ap,
char *);
190 return((
void*)
new SDDSFile(filename));
192 }
else if (mode&SDDSFILE_NEW_WITH_MODE) {
194 binary = va_arg(ap, int32_t);
195 if (binary == SDDS_ASCII)
197 return((
void*)
new SDDSFile(binary));
199 return((
void*)
new SDDSFile());
203SDDSFile::~SDDSFile() {
205 if (fileName != NULL)
207 if (descriptionText != NULL)
208 SDDS_free(descriptionText);
209 if (descriptionContents != NULL)
210 SDDS_free(descriptionContents);
211 for (i=0 ; i<arrayCount ; i++) {
212 delete arrayObject[i];
214 SDDS_free(arrayObject);
215 for (i=0 ; i<parameterCount ; i++) {
216 delete parameterObject[i];
218 SDDS_free(parameterObject);
219 for (i=0 ; i<columnCount ; i++) {
220 delete columnObject[i];
222 SDDS_free(columnObject);
229void SDDSFile_delete(
void* sddsfile) {
230 delete (SDDSFile*)sddsfile;
242void SDDSFile::setFileName(
char *filename) {
243 if (fileName != NULL)
245 if (filename == NULL)
248 fileName = (
char*)SDDS_malloc(
sizeof(
char) * strlen(filename) + 1);
249 strcpy(fileName, filename);
252void SDDSFile_setFileName(
void *sddsfile,
char *filename) {
253 ((SDDSFile*)sddsfile)->setFileName(filename);
265uint32_t SDDSFile::getDataMode() {
272uint32_t SDDSFile_getDataMode(
void *sddsfile) {
273 return(((SDDSFile*)sddsfile)->getDataMode());
285void SDDSFile::setDataMode(uint32_t mode) {
286 if (mode == SDDS_ASCII) {
292void SDDSFile_setDataMode(
void *sddsfile, uint32_t mode) {
293 ((SDDSFile*)sddsfile)->setDataMode(mode);
305void SDDSFile::setLayoutVersion(int32_t version) {
306 if ((version >= 1) && (version <= SDDS_VERSION)) {
307 layoutVersion = version;
310void SDDSFile_setLayoutVersion(
void *sddsfile, int32_t version) {
311 ((SDDSFile*)sddsfile)->setLayoutVersion(version);
323void SDDSFile::setColumnMajorOrder() {
324 columnMajorOrder =
true;
326void SDDSFile_setColumnMajorOrder(
void *sddsfile) {
327 ((SDDSFile*)sddsfile)->setColumnMajorOrder();
339void SDDSFile::setRowMajorOrder() {
340 columnMajorOrder =
false;
342void SDDSFile_setRowMajorOrder(
void *sddsfile) {
343 ((SDDSFile*)sddsfile)->setRowMajorOrder();
355void SDDSFile::setBinaryMode() {
358void SDDSFile_setBinaryMode(
void *sddsfile) {
359 ((SDDSFile*)sddsfile)->setBinaryMode();
371void SDDSFile::setAsciiMode() {
374void SDDSFile_setAsciiMode(
void *sddsfile) {
375 ((SDDSFile*)sddsfile)->setAsciiMode();
387void SDDSFile::setNonNativeEndian() {
388 bigEndian = (bool)(!SDDS_isBigEndianMachine());
390void SDDSFile_setNonNativeEndian(
void *sddsfile) {
391 ((SDDSFile*)sddsfile)->setNonNativeEndian();
403void SDDSFile::setNativeEndian() {
404 bigEndian = (bool)(SDDS_isBigEndianMachine());
406void SDDSFile_setNativeEndian(
void *sddsfile) {
407 ((SDDSFile*)sddsfile)->setNativeEndian();
419void SDDSFile::setNoRowCount() {
422void SDDSFile_setNoRowCount(
void *sddsfile) {
423 ((SDDSFile*)sddsfile)->setNoRowCount();
435void SDDSFile::setUseRowCount() {
438void SDDSFile_setUseRowCount(
void *sddsfile) {
439 ((SDDSFile*)sddsfile)->setUseRowCount();
451void SDDSFile::setDescription(
char *text,
char *contents) {
452 if (descriptionText != NULL)
453 SDDS_free(descriptionText);
454 if (descriptionContents != NULL)
455 SDDS_free(descriptionContents);
457 descriptionText = NULL;
459 descriptionText = (
char*)SDDS_malloc(
sizeof(
char) * strlen(text) + 1);
460 strcpy(descriptionText, text);
462 if (contents == NULL)
463 descriptionContents = NULL;
465 descriptionContents = (
char*)SDDS_malloc(
sizeof(
char) * strlen(contents) + 1);
466 strcpy(descriptionContents, contents);
469void SDDSFile_setDescription(
void *sddsfile,
char *text,
char *contents) {
470 ((SDDSFile*)sddsfile)->setDescription(text, contents);
483int32_t SDDSFile::getDescription(
char **text,
char **contents) {
484 if (descriptionText != NULL) {
486 if (SDDS_copyString(text, descriptionText)) {
487 setError((
char*)
"Unable to retrieve description data (SDDSFile::getDescription)");
491 if (descriptionContents != NULL) {
493 if (SDDS_copyString(contents, descriptionContents)) {
494 setError((
char*)
"Unable to retrieve description data (SDDSFile::getDescription)");
500int32_t SDDSFile_getDescription(
void *sddsfile,
char **text,
char **contents) {
501 return(((SDDSFile*)sddsfile)->getDescription(text, contents));
531int32_t SDDSFile::defineArray(
char *name,
char *symbol,
char *units,
char *description,
532 char *format_string,
char *group_name, int32_t type,
533 uint32_t field_length, uint32_t dimensions) {
535 char s[SDDS_MAXLINE];
539 setError((
char*)
"Warning: NULL name not allowed for array definition (SDDSFile::defineArray)");
542 if (!SDDS_isValidName(name)) {
543 sprintf(s,
"Warning: The following array name is invalid: >%s< (SDDSFile::defineArray)", name);
547 for (j=0 ; j<arrayCount ; j++) {
548 if (strcmp(name, arrayObject[j]->getName()) == 0) {
549 sprintf(s,
"Warning: array %s already exists (SDDSFile::defineArray)", name);
554 if (!SDDS_isValidType(type)) {
555 setError((
char*)
"Warning: unknown data type (SDDSFile::defineArray)");
558 if (format_string != NULL) {
559 if (!SDDS_verifyPrintfFormat(format_string, type)) {
560 setError((
char*)
"Warning: invalid format string (SDDSFile::defineArray)");
564 arrayObject = (SDDSArray**)SDDS_realloc(arrayObject,
sizeof(SDDSArray*) * (arrayCount + 1));
565 arrayObject[arrayCount] =
new SDDSArray();
566 arrayObject[arrayCount]->setupArray(name, symbol, units, description, format_string, group_name, type, field_length, dimensions);
567 arrayObject[arrayCount]->informAboutParent(
this);
572int32_t SDDSFile::defineArray(
char *name,
char *symbol,
char *units,
char *description,
573 char *format_string,
char *group_name,
char *type,
574 uint32_t field_length, uint32_t dimensions) {
575 return(defineArray(name, symbol, units, description, format_string, group_name, SDDS_identifyType(type), field_length, dimensions));
578int32_t SDDSFile::defineArray(
char *name, int32_t type, uint32_t dimensions) {
579 return(defineArray(name, NULL, NULL, NULL, NULL, NULL, type, 0, dimensions));
582int32_t SDDSFile::defineArray(
char *name,
char *type, uint32_t dimensions) {
583 return(defineArray(name, NULL, NULL, NULL, NULL, NULL, SDDS_identifyType(type), 0, dimensions));
586int32_t SDDSFile_defineArray(
void *sddsfile, int32_t mode, ...) {
596 uint32_t field_length;
600 if (mode&SDDSFILE_DEFINEARRAY_EXTENSIVE) {
601 if (mode&SDDSFILE_DEFINEARRAY_WITH_STRINGTYPE) {
602 name = va_arg(ap,
char *);
603 symbol = va_arg(ap,
char *);
604 units = va_arg(ap,
char *);
605 description = va_arg(ap,
char *);
606 format_string = va_arg(ap,
char *);
607 group_name = va_arg(ap,
char *);
608 typeChar = va_arg(ap,
char *);
609 field_length = va_arg(ap, uint32_t);
610 dimensions = va_arg(ap, uint32_t);
611 return(((SDDSFile*)sddsfile)->defineArray(name, symbol, units, description, format_string, group_name, typeChar, field_length, dimensions));
613 name = va_arg(ap,
char *);
614 symbol = va_arg(ap,
char *);
615 units = va_arg(ap,
char *);
616 description = va_arg(ap,
char *);
617 format_string = va_arg(ap,
char *);
618 group_name = va_arg(ap,
char *);
619 typeInt = va_arg(ap, int32_t);
620 field_length = va_arg(ap, uint32_t);
621 dimensions = va_arg(ap, uint32_t);
622 return(((SDDSFile*)sddsfile)->defineArray(name, symbol, units, description, format_string, group_name, typeInt, field_length, dimensions));
624 }
else if (mode&SDDSFILE_DEFINEARRAY_WITH_STRINGTYPE) {
625 name = va_arg(ap,
char *);
626 typeChar = va_arg(ap,
char *);
627 dimensions = va_arg(ap, uint32_t);
628 return(((SDDSFile*)sddsfile)->defineArray(name, typeChar, dimensions));
630 name = va_arg(ap,
char *);
631 typeInt = va_arg(ap, int32_t);
632 dimensions = va_arg(ap, uint32_t);
633 return(((SDDSFile*)sddsfile)->defineArray(name, typeInt, dimensions));
660int32_t SDDSFile::defineParameter(
char *name,
char *symbol,
char *units,
char *description,
661 char *format_string, int32_t type,
char *fixed_value) {
663 char s[SDDS_MAXLINE];
665 i = parameterCount + 1;
667 setError((
char*)
"Warning: NULL name not allowed for parameter definition (SDDSFile::defineParameter)");
670 if (!SDDS_isValidName(name)) {
671 sprintf(s,
"Warning: The following parameter name is invalid: >%s< (SDDSFile::defineParameter)", name);
675 for (j=0 ; j<parameterCount ; j++) {
676 if (strcmp(name, parameterObject[j]->getName()) == 0) {
677 sprintf(s,
"Warning: parameter %s already exists (SDDSFile::defineParameter)", name);
682 if (!SDDS_isValidType(type)) {
683 setError((
char*)
"Warning: unknown data type (SDDSFile::defineParameter)");
686 if (format_string != NULL) {
687 if (!SDDS_verifyPrintfFormat(format_string, type)) {
688 setError((
char*)
"Warning: invalid format string (SDDSFile::defineParameter)");
692 parameterObject = (SDDSParameter**)SDDS_realloc(parameterObject,
sizeof(SDDSParameter*) * (parameterCount + 1));
693 parameterObject[parameterCount] =
new SDDSParameter();
694 parameterObject[parameterCount]->setupParameter(name, symbol, units, description, format_string, type, fixed_value);
695 parameterObject[parameterCount]->informAboutParent(
this);
697 return(parameterCount);
700int32_t SDDSFile::defineParameter(
char *name,
char *symbol,
char *units,
char *description,
701 char *format_string,
char *type,
char *fixed_value) {
702 return(defineParameter(name, symbol, units, description, format_string, SDDS_identifyType(type), fixed_value));
705int32_t SDDSFile::defineParameter(
char *name, int32_t type) {
706 return(defineParameter(name, NULL, NULL, NULL, NULL, type, NULL));
709int32_t SDDSFile::defineParameter(
char *name,
char *type) {
710 return(defineParameter(name, NULL, NULL, NULL, NULL, SDDS_identifyType(type), NULL));
713int32_t SDDSFile_defineParameter(
void *sddsfile, int32_t mode, ...) {
725 if (mode&SDDSFILE_DEFINEPARAMETER_EXTENSIVE) {
726 if (mode&SDDSFILE_DEFINEPARAMETER_WITH_STRINGTYPE) {
727 name = va_arg(ap,
char *);
728 symbol = va_arg(ap,
char *);
729 units = va_arg(ap,
char *);
730 description = va_arg(ap,
char *);
731 format_string = va_arg(ap,
char *);
732 typeChar = va_arg(ap,
char *);
733 fixed_value = va_arg(ap,
char *);
734 return(((SDDSFile*)sddsfile)->defineParameter(name, symbol, units, description, format_string, typeChar, fixed_value));
736 name = va_arg(ap,
char *);
737 symbol = va_arg(ap,
char *);
738 units = va_arg(ap,
char *);
739 description = va_arg(ap,
char *);
740 format_string = va_arg(ap,
char *);
741 typeInt = va_arg(ap, int32_t);
742 fixed_value = va_arg(ap,
char *);
743 return(((SDDSFile*)sddsfile)->defineParameter(name, symbol, units, description, format_string, typeInt, fixed_value));
745 }
else if (mode&SDDSFILE_DEFINEPARAMETER_WITH_STRINGTYPE) {
746 name = va_arg(ap,
char *);
747 typeChar = va_arg(ap,
char *);
748 return(((SDDSFile*)sddsfile)->defineParameter(name, typeChar));
750 name = va_arg(ap,
char *);
751 typeInt = va_arg(ap, int32_t);
752 return(((SDDSFile*)sddsfile)->defineParameter(name, typeInt));
779int32_t SDDSFile::defineColumn(
char *name,
char *symbol,
char *units,
char *description,
780 char *format_string, int32_t type, uint32_t field_length) {
782 char s[SDDS_MAXLINE];
786 setError((
char*)
"Warning: NULL name not allowed for column definition (SDDSFile::defineColumn)");
789 if (!SDDS_isValidName(name)) {
790 sprintf(s,
"Warning: The following column name is invalid: >%s< (SDDSFile::defineColumn)", name);
794 for (j=0 ; j<columnCount ; j++) {
795 if (strcmp(name, columnObject[j]->getName()) == 0) {
796 sprintf(s,
"Warning: column %s already exists (SDDSFile::defineColumn)", name);
801 if (!SDDS_isValidType(type)) {
802 setError((
char*)
"Warning: unknown data type (SDDSFile::defineColumn)");
805 if (format_string != NULL) {
806 if (!SDDS_verifyPrintfFormat(format_string, type)) {
807 setError((
char*)
"Warning: invalid format string (SDDSFile::defineColumn)");
811 columnObject = (SDDSColumn**)SDDS_realloc(columnObject,
sizeof(SDDSColumn*) * (columnCount + 1));
812 columnObject[columnCount] =
new SDDSColumn();
813 columnObject[columnCount]->setupColumn(name, symbol, units, description, format_string, type, field_length);
814 columnObject[columnCount]->informAboutParent(
this);
819int32_t SDDSFile::defineColumn(
char *name,
char *symbol,
char *units,
char *description,
820 char *format_string,
char *type, uint32_t field_length) {
821 return(defineColumn(name, symbol, units, description, format_string, SDDS_identifyType(type), field_length));
824int32_t SDDSFile::defineColumn(
char *name, int32_t type) {
825 return(defineColumn(name, NULL, NULL, NULL, NULL, type, 0));
828int32_t SDDSFile::defineColumn(
char *name,
char *type) {
829 return(defineColumn(name, NULL, NULL, NULL, NULL, SDDS_identifyType(type), 0));
832int32_t SDDSFile_defineColumn(
void *sddsfile, int32_t mode, ...) {
841 uint32_t field_length;
844 if (mode&SDDSFILE_DEFINECOLUMN_EXTENSIVE) {
845 if (mode&SDDSFILE_DEFINECOLUMN_WITH_STRINGTYPE) {
846 name = va_arg(ap,
char *);
847 symbol = va_arg(ap,
char *);
848 units = va_arg(ap,
char *);
849 description = va_arg(ap,
char *);
850 format_string = va_arg(ap,
char *);
851 typeChar = va_arg(ap,
char *);
852 field_length = va_arg(ap, uint32_t);
853 return(((SDDSFile*)sddsfile)->defineColumn(name, symbol, units, description, format_string, typeChar, field_length));
855 name = va_arg(ap,
char *);
856 symbol = va_arg(ap,
char *);
857 units = va_arg(ap,
char *);
858 description = va_arg(ap,
char *);
859 format_string = va_arg(ap,
char *);
860 typeInt = va_arg(ap, int32_t);
861 field_length = va_arg(ap, uint32_t);
862 return(((SDDSFile*)sddsfile)->defineColumn(name, symbol, units, description, format_string, typeInt, field_length));
864 }
else if (mode&SDDSFILE_DEFINECOLUMN_WITH_STRINGTYPE) {
865 name = va_arg(ap,
char *);
866 typeChar = va_arg(ap,
char *);
867 return(((SDDSFile*)sddsfile)->defineColumn(name, typeChar));
869 name = va_arg(ap,
char *);
870 typeInt = va_arg(ap, int32_t);
871 return(((SDDSFile*)sddsfile)->defineColumn(name, typeInt));
890int32_t SDDSFile::defineArrays(int32_t number,
char **name,
char **symbol,
891 char **units,
char **description,
char **format_string,
892 char **group_name, int32_t *type, uint32_t *field_length,
893 uint32_t *dimensions) {
903 if (description == NULL)
905 if (format_string == NULL)
907 if (group_name == NULL)
911 if (field_length == NULL)
913 if (dimensions == NULL)
915 for (i=0 ; i<number ; i++) {
916 if (defineArray(name[i], symbol[i], units[i], description[i], format_string[i], group_name[i], type[i], field_length[i], dimensions[i]) < 0) {
923int32_t SDDSFile::defineArrays(int32_t number,
char **name,
char **symbol,
924 char **units,
char **description,
char **format_string,
925 char **group_name,
char **type, uint32_t *field_length,
926 uint32_t *dimensions) {
936 if (description == NULL)
938 if (format_string == NULL)
940 if (group_name == NULL)
944 if (field_length == NULL)
946 if (dimensions == NULL)
948 for (i=0 ; i<number ; i++) {
949 if (defineArray(name[i], symbol[i], units[i], description[i], format_string[i], group_name[i], type[i], field_length[i], dimensions[i]) < 0) {
956int32_t SDDSFile::defineArrays(int32_t number,
char **name, int32_t *type, uint32_t *dimensions) {
964 if (dimensions == NULL)
966 for (i=0 ; i<number ; i++) {
967 if (defineArray(name[i], type[i], dimensions[i]) < 0) {
974int32_t SDDSFile::defineArrays(int32_t number,
char **name,
char **type, uint32_t *dimensions) {
982 if (dimensions == NULL)
984 for (i=0 ; i<number ; i++) {
985 if (defineArray(name[i], type[i], dimensions[i]) < 0) {
1005int32_t SDDSFile::defineParameters(int32_t number,
char **name,
char **symbol,
char **units,
1006 char **description,
char **format_string, int32_t *type,
char **fixed_value) {
1016 if (description == NULL)
1018 if (format_string == NULL)
1022 if (fixed_value == NULL)
1024 for (i=0 ; i<number ; i++) {
1025 if (defineParameter(name[i], symbol[i], units[i], description[i], format_string[i], type[i], fixed_value[i]) < 0) {
1032int32_t SDDSFile::defineParameters(int32_t number,
char **name,
char **symbol,
char **units,
1033 char **description,
char **format_string,
char **type,
char **fixed_value) {
1043 if (description == NULL)
1045 if (format_string == NULL)
1049 if (fixed_value == NULL)
1051 for (i=0 ; i<number ; i++) {
1052 if (defineParameter(name[i], symbol[i], units[i], description[i], format_string[i], type[i], fixed_value[i]) < 0) {
1059int32_t SDDSFile::defineParameters(int32_t number,
char **name, int32_t *type) {
1067 for (i=0 ; i<number ; i++) {
1068 if (defineParameter(name[i], type[i]) < 0) {
1075int32_t SDDSFile::defineParameters(int32_t number,
char **name,
char **type) {
1083 for (i=0 ; i<number ; i++) {
1084 if (defineParameter(name[i], type[i]) < 0) {
1104int32_t SDDSFile::defineColumns(int32_t number,
char **name,
char **symbol,
char **units,
1105 char **description,
char **format_string, int32_t *type, uint32_t *field_length) {
1115 if (description == NULL)
1117 if (format_string == NULL)
1121 if (field_length == NULL)
1123 for (i=0 ; i<number ; i++) {
1124 if (defineColumn(name[i], symbol[i], units[i], description[i], format_string[i], type[i], field_length[i]) < 0) {
1131int32_t SDDSFile::defineColumns(int32_t number,
char **name,
char **symbol,
char **units,
1132 char **description,
char **format_string,
char **type, uint32_t *field_length) {
1142 if (description == NULL)
1144 if (format_string == NULL)
1148 if (field_length == NULL)
1150 for (i=0 ; i<number ; i++) {
1151 if (defineColumn(name[i], symbol[i], units[i], description[i], format_string[i], type[i], field_length[i]) < 0) {
1158int32_t SDDSFile::defineColumns(int32_t number,
char **name, int32_t *type) {
1166 for (i=0 ; i<number ; i++) {
1167 if (defineColumn(name[i], type[i]) < 0) {
1174int32_t SDDSFile::defineColumns(int32_t number,
char **name,
char **type) {
1182 for (i=0 ; i<number ; i++) {
1183 if (defineColumn(name[i], type[i]) < 0) {
1200void SDDSFile::setArraySymbol(int32_t index,
char *symbol) {
1201 if ((index < 0) || (index >= arrayCount))
1203 arrayObject[index]->setSymbol(symbol);
1205void SDDSFile::setArraySymbol(
char *name,
char *symbol) {
1207 index = getArrayIndex(name);
1208 if ((index < 0) || (index >= arrayCount))
1210 arrayObject[index]->setSymbol(symbol);
1212void SDDSFile_setArraySymbol(
void *sddsfile, int32_t index,
char *symbol) {
1213 ((SDDSFile*)sddsfile)->setArraySymbol(index, symbol);
1226void SDDSFile::setParameterSymbol(int32_t index,
char *symbol) {
1227 if ((index < 0) || (index >= parameterCount))
1229 parameterObject[index]->setSymbol(symbol);
1231void SDDSFile::setParameterSymbol(
char *name,
char *symbol) {
1233 index = getParameterIndex(name);
1234 if ((index < 0) || (index >= parameterCount))
1236 parameterObject[index]->setSymbol(symbol);
1238void SDDSFile_setParameterSymbol(
void *sddsfile, int32_t index,
char *symbol) {
1239 ((SDDSFile*)sddsfile)->setParameterSymbol(index, symbol);
1252void SDDSFile::setColumnSymbol(int32_t index,
char *symbol) {
1253 if ((index < 0) || (index >= columnCount))
1255 columnObject[index]->setSymbol(symbol);
1257void SDDSFile::setColumnSymbol(
char *name,
char *symbol) {
1259 index = getColumnIndex(name);
1260 if ((index < 0) || (index >= columnCount))
1262 columnObject[index]->setSymbol(symbol);
1264void SDDSFile_setColumnSymbol(
void *sddsfile, int32_t index,
char *symbol) {
1265 ((SDDSFile*)sddsfile)->setColumnSymbol(index, symbol);
1278void SDDSFile::setArrayUnits(int32_t index,
char *units) {
1279 if ((index < 0) || (index >= arrayCount))
1281 arrayObject[index]->setUnits(units);
1283void SDDSFile::setArrayUnits(
char *name,
char *units) {
1285 index = getArrayIndex(name);
1286 if ((index < 0) || (index >= arrayCount))
1288 arrayObject[index]->setUnits(units);
1290void SDDSFile_setArrayUnits(
void *sddsfile, int32_t index,
char *units) {
1291 ((SDDSFile*)sddsfile)->setArrayUnits(index, units);
1304void SDDSFile::setParameterUnits(int32_t index,
char *units) {
1305 if ((index < 0) || (index >= parameterCount))
1307 parameterObject[index]->setUnits(units);
1309void SDDSFile::setParameterUnits(
char *name,
char *units) {
1311 index = getParameterIndex(name);
1312 if ((index < 0) || (index >= parameterCount))
1314 parameterObject[index]->setUnits(units);
1316void SDDSFile_setParameterUnits(
void *sddsfile, int32_t index,
char *units) {
1317 ((SDDSFile*)sddsfile)->setParameterUnits(index, units);
1330void SDDSFile::setColumnUnits(int32_t index,
char *units) {
1331 if ((index < 0) || (index >= columnCount))
1333 columnObject[index]->setUnits(units);
1335void SDDSFile::setColumnUnits(
char *name,
char *units) {
1337 index = getColumnIndex(name);
1338 if ((index < 0) || (index >= columnCount))
1340 columnObject[index]->setUnits(units);
1342void SDDSFile_setColumnUnits(
void *sddsfile, int32_t index,
char *units) {
1343 ((SDDSFile*)sddsfile)->setColumnUnits(index, units);
1356void SDDSFile::setArrayDescription(int32_t index,
char *description) {
1357 if ((index < 0) || (index >= arrayCount))
1359 arrayObject[index]->setDescription(description);
1361void SDDSFile::setArrayDescription(
char *name,
char *description) {
1363 index = getArrayIndex(name);
1364 if ((index < 0) || (index >= arrayCount))
1366 arrayObject[index]->setDescription(description);
1368void SDDSFile_setArrayDescription(
void *sddsfile, int32_t index,
char *description) {
1369 ((SDDSFile*)sddsfile)->setArrayDescription(index, description);
1382void SDDSFile::setParameterDescription(int32_t index,
char *description) {
1383 if ((index < 0) || (index >= parameterCount))
1385 parameterObject[index]->setDescription(description);
1387void SDDSFile::setParameterDescription(
char *name,
char *description) {
1389 index = getParameterIndex(name);
1390 if ((index < 0) || (index >= parameterCount))
1392 parameterObject[index]->setDescription(description);
1394void SDDSFile_setParameterDescription(
void *sddsfile, int32_t index,
char *description) {
1395 ((SDDSFile*)sddsfile)->setParameterDescription(index, description);
1408void SDDSFile::setColumnDescription(int32_t index,
char *description) {
1409 if ((index < 0) || (index >= columnCount))
1411 columnObject[index]->setDescription(description);
1413void SDDSFile::setColumnDescription(
char *name,
char *description) {
1415 index = getColumnIndex(name);
1416 if ((index < 0) || (index >= columnCount))
1418 columnObject[index]->setDescription(description);
1420void SDDSFile_setColumnDescription(
void *sddsfile, int32_t index,
char *description) {
1421 ((SDDSFile*)sddsfile)->setColumnDescription(index, description);
1434void SDDSFile::setArrayFormatString(int32_t index,
char *format_string) {
1435 if ((index < 0) || (index >= arrayCount))
1437 arrayObject[index]->setFormatString(format_string);
1439void SDDSFile::setArrayFormatString(
char *name,
char *format_string) {
1441 index = getArrayIndex(name);
1442 if ((index < 0) || (index >= arrayCount))
1444 arrayObject[index]->setFormatString(format_string);
1446void SDDSFile_setArrayFormatString(
void *sddsfile, int32_t index,
char *format_string) {
1447 ((SDDSFile*)sddsfile)->setArrayFormatString(index, format_string);
1460void SDDSFile::setParameterFormatString(int32_t index,
char *format_string) {
1461 if ((index < 0) || (index >= parameterCount))
1463 parameterObject[index]->setFormatString(format_string);
1465void SDDSFile::setParameterFormatString(
char *name,
char *format_string) {
1467 index = getParameterIndex(name);
1468 if ((index < 0) || (index >= parameterCount))
1470 parameterObject[index]->setFormatString(format_string);
1472void SDDSFile_setParameterFormatString(
void *sddsfile, int32_t index,
char *format_string) {
1473 ((SDDSFile*)sddsfile)->setParameterFormatString(index, format_string);
1486void SDDSFile::setColumnFormatString(int32_t index,
char *format_string) {
1487 if ((index < 0) || (index >= columnCount))
1489 columnObject[index]->setFormatString(format_string);
1491void SDDSFile::setColumnFormatString(
char *name,
char *format_string) {
1493 index = getColumnIndex(name);
1494 if ((index < 0) || (index >= columnCount))
1496 columnObject[index]->setFormatString(format_string);
1498void SDDSFile_setColumnFormatString(
void *sddsfile, int32_t index,
char *format_string) {
1499 ((SDDSFile*)sddsfile)->setColumnFormatString(index, format_string);
1512void SDDSFile::setParameterFixedValue(int32_t index,
char *fixed_value) {
1513 if ((index < 0) || (index >= parameterCount))
1515 parameterObject[index]->setFixedValue(fixed_value);
1517void SDDSFile::setParameterFixedValue(
char *name,
char *fixed_value) {
1519 index = getParameterIndex(name);
1520 if ((index < 0) || (index >= parameterCount))
1522 parameterObject[index]->setFixedValue(fixed_value);
1524void SDDSFile_setParameterFixedValue(
void *sddsfile, int32_t index,
char *fixed_value) {
1525 ((SDDSFile*)sddsfile)->setParameterFixedValue(index, fixed_value);
1538void SDDSFile::setArrayFieldLength(int32_t index, uint32_t field_length) {
1539 if ((index < 0) || (index >= arrayCount))
1541 arrayObject[index]->setFieldLength(field_length);
1543void SDDSFile::setArrayFieldLength(
char *name, uint32_t field_length) {
1545 index = getArrayIndex(name);
1546 if ((index < 0) || (index >= arrayCount))
1548 arrayObject[index]->setFieldLength(field_length);
1550void SDDSFile_setArrayFieldLength(
void *sddsfile, int32_t index, uint32_t field_length) {
1551 ((SDDSFile*)sddsfile)->setArrayFieldLength(index, field_length);
1564void SDDSFile::setColumnFieldLength(int32_t index, uint32_t field_length) {
1565 if ((index < 0) || (index >= columnCount))
1567 columnObject[index]->setFieldLength(field_length);
1569void SDDSFile::setColumnFieldLength(
char *name, uint32_t field_length) {
1571 index = getColumnIndex(name);
1572 if ((index < 0) || (index >= columnCount))
1574 columnObject[index]->setFieldLength(field_length);
1576void SDDSFile_setColumnFieldLength(
void *sddsfile, int32_t index, uint32_t field_length) {
1577 ((SDDSFile*)sddsfile)->setColumnFieldLength(index, field_length);
1590void SDDSFile::setArrayGroupName(int32_t index,
char *group_name) {
1591 if ((index < 0) || (index >= arrayCount))
1593 arrayObject[index]->setGroupName(group_name);
1595void SDDSFile::setArrayGroupName(
char *name,
char *group_name) {
1597 index = getArrayIndex(name);
1598 if ((index < 0) || (index >= arrayCount))
1600 arrayObject[index]->setGroupName(group_name);
1602void SDDSFile_setArrayGroupName(
void *sddsfile, int32_t index,
char *group_name) {
1603 ((SDDSFile*)sddsfile)->setArrayGroupName(index, group_name);
1616void SDDSFile::setArrayDimensions(int32_t index, uint32_t dimensions) {
1617 if ((index < 0) || (index >= arrayCount))
1619 arrayObject[index]->setDimensions(dimensions);
1621void SDDSFile::setArrayDimensions(
char *name, uint32_t dimensions) {
1623 index = getArrayIndex(name);
1624 if ((index < 0) || (index >= arrayCount))
1626 arrayObject[index]->setDimensions(dimensions);
1628void SDDSFile_setArrayDimensions(
void *sddsfile, int32_t index, uint32_t dimensions) {
1629 ((SDDSFile*)sddsfile)->setArrayDimensions(index, dimensions);
1646void SDDSFile::setArrayDim(uint32_t page, int32_t index, uint32_t *dimensions) {
1647 if ((index < 0) || (index >= arrayCount))
1649 arrayObject[index]->setDim(page, dimensions);
1651void SDDSFile::setArrayDim(uint32_t page,
char *name, uint32_t *dimensions) {
1653 index = getArrayIndex(name);
1654 if ((index < 0) || (index >= arrayCount))
1656 arrayObject[index]->setDim(page, dimensions);
1658void SDDSFile_setArrayDim(
void *sddsfile, uint32_t page, uint32_t *dimensions, int32_t mode, ...) {
1664 if (mode&SDDSFILE_SETARRAY_WITH_INDEX) {
1665 index = va_arg(ap, int32_t);
1666 ((SDDSFile*)sddsfile)->setArrayDim(page, index, dimensions);
1668 name = va_arg(ap,
char *);
1669 ((SDDSFile*)sddsfile)->setArrayDim(page, name, dimensions);
1683char* SDDSFile::getArrayName(int32_t index) {
1684 if ((index < 0) || (index >= arrayCount))
1686 return(arrayObject[index]->getName());
1688char* SDDSFile_getArrayName(
void *sddsfile, int32_t index) {
1689 return(((SDDSFile*)sddsfile)->getArrayName(index));
1702char* SDDSFile::getParameterName(int32_t index) {
1703 if ((index < 0) || (index >= parameterCount))
1705 return(parameterObject[index]->getName());
1707char* SDDSFile_getParameterName(
void *sddsfile, int32_t index) {
1708 return(((SDDSFile*)sddsfile)->getParameterName(index));
1721char* SDDSFile::getColumnName(int32_t index) {
1722 if ((index < 0) || (index >= columnCount))
1724 return(columnObject[index]->getName());
1726char* SDDSFile_getColumnName(
void *sddsfile, int32_t index) {
1727 return(((SDDSFile*)sddsfile)->getColumnName(index));
1741char** SDDSFile::getArrayNames() {
1744 names = (
char**)SDDS_malloc(
sizeof(
char*) * arrayCount);
1745 for (i=0;i<arrayCount;i++) {
1746 names[i] = getArrayName(i);
1750char** SDDSFile_getArrayNames(
void *sddsfile) {
1751 return(((SDDSFile*)sddsfile)->getArrayNames());
1763int32_t SDDSFile::getArrayCount() {
1766int32_t SDDSFile_getArrayCount(
void *sddsfile) {
1767 return(((SDDSFile*)sddsfile)->getArrayCount());
1781char** SDDSFile::getParameterNames() {
1784 names = (
char**)SDDS_malloc(
sizeof(
char*) * parameterCount);
1785 for (i=0;i<parameterCount;i++) {
1786 names[i] = getParameterName(i);
1790char** SDDSFile_getParameterNames(
void *sddsfile) {
1791 return(((SDDSFile*)sddsfile)->getParameterNames());
1803int32_t SDDSFile::getParameterCount() {
1804 return(parameterCount);
1806int32_t SDDSFile_getParameterCount(
void *sddsfile) {
1807 return(((SDDSFile*)sddsfile)->getParameterCount());
1821char** SDDSFile::getColumnNames() {
1824 names = (
char**)SDDS_malloc(
sizeof(
char*) * columnCount);
1825 for (i=0;i<columnCount;i++) {
1826 names[i] = getColumnName(i);
1830char** SDDSFile_getColumnNames(
void *sddsfile) {
1831 return(((SDDSFile*)sddsfile)->getColumnNames());
1843int32_t SDDSFile::getColumnCount() {
1844 return(columnCount);
1846int32_t SDDSFile_getColumnCount(
void *sddsfile) {
1847 return(((SDDSFile*)sddsfile)->getColumnCount());
1861char* SDDSFile::getArrayUnits(int32_t index) {
1862 if ((index < 0) || (index >= arrayCount))
1864 return(arrayObject[index]->getUnits());
1866char* SDDSFile::getArrayUnits(
char *name) {
1868 index = getArrayIndex(name);
1869 if ((index < 0) || (index >= arrayCount))
1871 return(arrayObject[index]->getUnits());
1873char* SDDSFile_getArrayUnits(
void *sddsfile, int32_t index) {
1874 return(((SDDSFile*)sddsfile)->getArrayUnits(index));
1888char* SDDSFile::getParameterUnits(int32_t index) {
1889 if ((index < 0) || (index >= parameterCount))
1891 return(parameterObject[index]->getUnits());
1893char* SDDSFile::getParameterUnits(
char *name) {
1895 index = getParameterIndex(name);
1896 if ((index < 0) || (index >= parameterCount))
1898 return(parameterObject[index]->getUnits());
1900char* SDDSFile_getParameterUnits(
void *sddsfile, int32_t index) {
1901 return(((SDDSFile*)sddsfile)->getParameterUnits(index));
1915char* SDDSFile::getColumnUnits(int32_t index) {
1916 if ((index < 0) || (index >= columnCount))
1918 return(columnObject[index]->getUnits());
1920char* SDDSFile::getColumnUnits(
char *name) {
1922 index = getColumnIndex(name);
1923 if ((index < 0) || (index >= columnCount))
1925 return(columnObject[index]->getUnits());
1927char* SDDSFile_getColumnUnits(
void *sddsfile, int32_t index) {
1928 return(((SDDSFile*)sddsfile)->getColumnUnits(index));
1942char** SDDSFile::getAllArrayUnits() {
1945 units = (
char**)SDDS_malloc(
sizeof(
char*) * arrayCount);
1946 for (i=0;i<arrayCount;i++) {
1947 units[i] = getArrayUnits(i);
1951char** SDDSFile_getAllArrayUnits(
void *sddsfile) {
1952 return(((SDDSFile*)sddsfile)->getAllArrayUnits());
1966char** SDDSFile::getAllParameterUnits() {
1969 units = (
char**)SDDS_malloc(
sizeof(
char*) * parameterCount);
1970 for (i=0;i<parameterCount;i++) {
1971 units[i] = getParameterUnits(i);
1975char** SDDSFile_getAllParameterUnits(
void *sddsfile) {
1976 return(((SDDSFile*)sddsfile)->getAllParameterUnits());
1990char** SDDSFile::getAllColumnUnits() {
1993 units = (
char**)SDDS_malloc(
sizeof(
char*) * columnCount);
1994 for (i=0;i<columnCount;i++) {
1995 units[i] = getColumnUnits(i);
1999char** SDDSFile_getAllColumnUnits(
void *sddsfile) {
2000 return(((SDDSFile*)sddsfile)->getAllColumnUnits());
2014char* SDDSFile::getArraySymbol(int32_t index) {
2015 if ((index < 0) || (index >= arrayCount))
2017 return(arrayObject[index]->getSymbol());
2019char* SDDSFile::getArraySymbol(
char *name) {
2021 index = getArrayIndex(name);
2022 if ((index < 0) || (index >= arrayCount))
2024 return(arrayObject[index]->getSymbol());
2026char* SDDSFile_getArraySymbol(
void *sddsfile, int32_t index) {
2027 return(((SDDSFile*)sddsfile)->getArraySymbol(index));
2041char* SDDSFile::getParameterSymbol(int32_t index) {
2042 if ((index < 0) || (index >= parameterCount))
2044 return(parameterObject[index]->getSymbol());
2046char* SDDSFile::getParameterSymbol(
char *name) {
2048 index = getParameterIndex(name);
2049 if ((index < 0) || (index >= parameterCount))
2051 return(parameterObject[index]->getSymbol());
2053char* SDDSFile_getParameterSymbol(
void *sddsfile, int32_t index) {
2054 return(((SDDSFile*)sddsfile)->getParameterSymbol(index));
2068char* SDDSFile::getColumnSymbol(int32_t index) {
2069 if ((index < 0) || (index >= columnCount))
2071 return(columnObject[index]->getSymbol());
2073char* SDDSFile::getColumnSymbol(
char *name) {
2075 index = getColumnIndex(name);
2076 if ((index < 0) || (index >= columnCount))
2078 return(columnObject[index]->getSymbol());
2080char* SDDSFile_getColumnSymbol(
void *sddsfile, int32_t index) {
2081 return(((SDDSFile*)sddsfile)->getColumnSymbol(index));
2095char** SDDSFile::getArraySymbols() {
2098 symbols = (
char**)SDDS_malloc(
sizeof(
char*) * arrayCount);
2099 for (i=0;i<arrayCount;i++) {
2100 symbols[i] = getArraySymbol(i);
2104char** SDDSFile_getArraySymbols(
void *sddsfile) {
2105 return(((SDDSFile*)sddsfile)->getArraySymbols());
2119char** SDDSFile::getParameterSymbols() {
2122 symbols = (
char**)SDDS_malloc(
sizeof(
char*) * parameterCount);
2123 for (i=0;i<parameterCount;i++) {
2124 symbols[i] = getParameterSymbol(i);
2128char** SDDSFile_getParameterSymbols(
void *sddsfile) {
2129 return(((SDDSFile*)sddsfile)->getParameterSymbols());
2143char** SDDSFile::getColumnSymbols() {
2146 symbols = (
char**)SDDS_malloc(
sizeof(
char*) * columnCount);
2147 for (i=0;i<columnCount;i++) {
2148 symbols[i] = getColumnSymbol(i);
2152char** SDDSFile_getColumnSymbols(
void *sddsfile) {
2153 return(((SDDSFile*)sddsfile)->getColumnSymbols());
2167char* SDDSFile::getArrayFormatString(int32_t index) {
2168 if ((index < 0) || (index >= arrayCount))
2170 return(arrayObject[index]->getFormatString());
2172char* SDDSFile::getArrayFormatString(
char *name) {
2174 index = getArrayIndex(name);
2175 if ((index < 0) || (index >= arrayCount))
2177 return(arrayObject[index]->getFormatString());
2179char* SDDSFile_getArrayFormatString(
void *sddsfile, int32_t index) {
2180 return(((SDDSFile*)sddsfile)->getArrayFormatString(index));
2194char* SDDSFile::getParameterFormatString(int32_t index) {
2195 if ((index < 0) || (index >= parameterCount))
2197 return(parameterObject[index]->getFormatString());
2199char* SDDSFile::getParameterFormatString(
char *name) {
2201 index = getParameterIndex(name);
2202 if ((index < 0) || (index >= parameterCount))
2204 return(parameterObject[index]->getFormatString());
2206char* SDDSFile_getParameterFormatString(
void *sddsfile, int32_t index) {
2207 return(((SDDSFile*)sddsfile)->getParameterFormatString(index));
2221char* SDDSFile::getColumnFormatString(int32_t index) {
2222 if ((index < 0) || (index >= columnCount))
2224 return(columnObject[index]->getFormatString());
2226char* SDDSFile::getColumnFormatString(
char *name) {
2228 index = getColumnIndex(name);
2229 if ((index < 0) || (index >= columnCount))
2231 return(columnObject[index]->getFormatString());
2233char* SDDSFile_getColumnFormatString(
void *sddsfile, int32_t index) {
2234 return(((SDDSFile*)sddsfile)->getColumnFormatString(index));
2248char** SDDSFile::getArrayFormatStrings() {
2250 char **format_strings;
2251 format_strings = (
char**)SDDS_malloc(
sizeof(
char*) * arrayCount);
2252 for (i=0;i<arrayCount;i++) {
2253 format_strings[i] = getArrayFormatString(i);
2255 return(format_strings);
2257char** SDDSFile_getArrayFormatStrings(
void *sddsfile) {
2258 return(((SDDSFile*)sddsfile)->getArrayFormatStrings());
2272char** SDDSFile::getParameterFormatStrings() {
2274 char **format_strings;
2275 format_strings = (
char**)SDDS_malloc(
sizeof(
char*) * parameterCount);
2276 for (i=0;i<parameterCount;i++) {
2277 format_strings[i] = getParameterFormatString(i);
2279 return(format_strings);
2281char** SDDSFile_getParameterFormatStrings(
void *sddsfile) {
2282 return(((SDDSFile*)sddsfile)->getParameterFormatStrings());
2296char** SDDSFile::getColumnFormatStrings() {
2298 char **format_strings;
2299 format_strings = (
char**)SDDS_malloc(
sizeof(
char*) * columnCount);
2300 for (i=0;i<columnCount;i++) {
2301 format_strings[i] = getColumnFormatString(i);
2303 return(format_strings);
2305char** SDDSFile_getColumnFormatStrings(
void *sddsfile) {
2306 return(((SDDSFile*)sddsfile)->getColumnFormatStrings());
2320int32_t SDDSFile::getArrayType(int32_t index) {
2321 if ((index < 0) || (index >= arrayCount))
2323 return(arrayObject[index]->getType());
2325int32_t SDDSFile::getArrayType(
char *name) {
2327 index = getArrayIndex(name);
2328 if ((index < 0) || (index >= arrayCount))
2330 return(arrayObject[index]->getType());
2332int32_t SDDSFile_getArrayType(
void *sddsfile, int32_t index) {
2333 return(((SDDSFile*)sddsfile)->getArrayType(index));
2347int32_t SDDSFile::getParameterType(int32_t index) {
2348 if ((index < 0) || (index >= parameterCount))
2350 return(parameterObject[index]->getType());
2352int32_t SDDSFile::getParameterType(
char *name) {
2354 index = getParameterIndex(name);
2355 if ((index < 0) || (index >= parameterCount))
2357 return(parameterObject[index]->getType());
2359int32_t SDDSFile_getParameterType(
void *sddsfile, int32_t index) {
2360 return(((SDDSFile*)sddsfile)->getParameterType(index));
2374int32_t SDDSFile::getColumnType(int32_t index) {
2375 if ((index < 0) || (index >= columnCount))
2377 return(columnObject[index]->getType());
2379int32_t SDDSFile::getColumnType(
char *name) {
2381 index = getColumnIndex(name);
2382 if ((index < 0) || (index >= columnCount))
2384 return(columnObject[index]->getType());
2386int32_t SDDSFile_getColumnType(
void *sddsfile, int32_t index) {
2387 return(((SDDSFile*)sddsfile)->getColumnType(index));
2400int32_t* SDDSFile::getArrayTypes() {
2403 types = (int32_t*)SDDS_malloc(
sizeof(int32_t) * arrayCount);
2404 for (i=0;i<arrayCount;i++) {
2405 types[i] = getArrayType(i);
2409int32_t* SDDSFile_getArrayTypes(
void *sddsfile) {
2410 return(((SDDSFile*)sddsfile)->getArrayTypes());
2423int32_t* SDDSFile::getParameterTypes() {
2426 types = (int32_t*)SDDS_malloc(
sizeof(int32_t) * parameterCount);
2427 for (i=0;i<parameterCount;i++) {
2428 types[i] = getParameterType(i);
2432int32_t* SDDSFile_getParameterTypes(
void *sddsfile) {
2433 return(((SDDSFile*)sddsfile)->getParameterTypes());
2446int32_t* SDDSFile::getColumnTypes() {
2449 types = (int32_t*)SDDS_malloc(
sizeof(int32_t) * columnCount);
2450 for (i=0;i<columnCount;i++) {
2451 types[i] = getColumnType(i);
2455int32_t* SDDSFile_getColumnTypes(
void *sddsfile) {
2456 return(((SDDSFile*)sddsfile)->getColumnTypes());
2470char* SDDSFile::getArrayDescription(int32_t index) {
2471 if ((index < 0) || (index >= arrayCount))
2473 return(arrayObject[index]->getDescription());
2475char* SDDSFile::getArrayDescription(
char *name) {
2477 index = getArrayIndex(name);
2478 if ((index < 0) || (index >= arrayCount))
2480 return(arrayObject[index]->getDescription());
2482char* SDDSFile_getArrayDescription(
void *sddsfile, int32_t index) {
2483 return(((SDDSFile*)sddsfile)->getArrayDescription(index));
2497char* SDDSFile::getParameterDescription(int32_t index) {
2498 if ((index < 0) || (index >= parameterCount))
2500 return(parameterObject[index]->getDescription());
2502char* SDDSFile::getParameterDescription(
char *name) {
2504 index = getParameterIndex(name);
2505 if ((index < 0) || (index >= parameterCount))
2507 return(parameterObject[index]->getDescription());
2509char* SDDSFile_getParameterDescription(
void *sddsfile, int32_t index) {
2510 return(((SDDSFile*)sddsfile)->getParameterDescription(index));
2524char* SDDSFile::getColumnDescription(int32_t index) {
2525 if ((index < 0) || (index >= columnCount))
2527 return(columnObject[index]->getDescription());
2529char* SDDSFile::getColumnDescription(
char *name) {
2531 index = getColumnIndex(name);
2532 if ((index < 0) || (index >= columnCount))
2534 return(columnObject[index]->getDescription());
2536char* SDDSFile_getColumnDescription(
void *sddsfile, int32_t index) {
2537 return(((SDDSFile*)sddsfile)->getColumnDescription(index));
2551char** SDDSFile::getArrayDescriptions() {
2553 char **descriptions;
2554 descriptions = (
char**)SDDS_malloc(
sizeof(
char*) * arrayCount);
2555 for (i=0;i<arrayCount;i++) {
2556 descriptions[i] = getArrayDescription(i);
2558 return(descriptions);
2560char** SDDSFile_getArrayDescriptions(
void *sddsfile) {
2561 return(((SDDSFile*)sddsfile)->getArrayDescriptions());
2575char** SDDSFile::getParameterDescriptions() {
2577 char **descriptions;
2578 descriptions = (
char**)SDDS_malloc(
sizeof(
char*) * parameterCount);
2579 for (i=0;i<parameterCount;i++) {
2580 descriptions[i] = getParameterDescription(i);
2582 return(descriptions);
2584char** SDDSFile_getParameterDescriptions(
void *sddsfile) {
2585 return(((SDDSFile*)sddsfile)->getParameterDescriptions());
2599char** SDDSFile::getColumnDescriptions() {
2601 char **descriptions;
2602 descriptions = (
char**)SDDS_malloc(
sizeof(
char*) * columnCount);
2603 for (i=0;i<columnCount;i++) {
2604 descriptions[i] = getColumnDescription(i);
2606 return(descriptions);
2608char** SDDSFile_getColumnDescriptions(
void *sddsfile) {
2609 return(((SDDSFile*)sddsfile)->getColumnDescriptions());
2623char* SDDSFile::getArrayGroupName(int32_t index) {
2624 if ((index < 0) || (index >= arrayCount))
2626 return(arrayObject[index]->getGroupName());
2628char* SDDSFile::getArrayGroupName(
char *name) {
2630 index = getArrayIndex(name);
2631 if ((index < 0) || (index >= arrayCount))
2633 return(arrayObject[index]->getGroupName());
2635char* SDDSFile_getArrayGroupName(
void *sddsfile, int32_t index) {
2636 return(((SDDSFile*)sddsfile)->getArrayGroupName(index));
2650char** SDDSFile::getArrayGroupNames() {
2653 group_names = (
char**)SDDS_malloc(
sizeof(
char*) * arrayCount);
2654 for (i=0;i<arrayCount;i++) {
2655 group_names[i] = getArrayGroupName(i);
2657 return(group_names);
2659char** SDDSFile_getArrayGroupNames(
void *sddsfile) {
2660 return(((SDDSFile*)sddsfile)->getArrayGroupNames());
2674char* SDDSFile::getParameterFixedValue(int32_t index) {
2675 if ((index < 0) || (index >= parameterCount))
2677 return(parameterObject[index]->getFixedValue());
2679char* SDDSFile::getParameterFixedValue(
char *name) {
2681 index = getParameterIndex(name);
2682 if ((index < 0) || (index >= parameterCount))
2684 return(parameterObject[index]->getFixedValue());
2686char* SDDSFile_getParameterFixedValue(
void *sddsfile, int32_t index) {
2687 return(((SDDSFile*)sddsfile)->getParameterFixedValue(index));
2701char** SDDSFile::getParameterFixedValues() {
2703 char **fixed_values;
2704 fixed_values = (
char**)SDDS_malloc(
sizeof(
char*) * parameterCount);
2705 for (i=0;i<parameterCount;i++) {
2706 fixed_values[i] = getParameterFixedValue(i);
2708 return(fixed_values);
2710char** SDDSFile_getParameterFixedValues(
void *sddsfile) {
2711 return(((SDDSFile*)sddsfile)->getParameterFixedValues());
2725uint32_t SDDSFile::getArrayFieldLength(int32_t index) {
2726 if ((index < 0) || (index >= arrayCount))
2728 return(arrayObject[index]->getFieldLength());
2730uint32_t SDDSFile::getArrayFieldLength(
char *name) {
2732 index = getArrayIndex(name);
2733 if ((index < 0) || (index >= arrayCount))
2735 return(arrayObject[index]->getFieldLength());
2737uint32_t SDDSFile_getArrayFieldLength(
void *sddsfile, int32_t index) {
2738 return(((SDDSFile*)sddsfile)->getArrayFieldLength(index));
2751uint32_t* SDDSFile::getArrayFieldLengths() {
2754 fls = (uint32_t*)SDDS_malloc(
sizeof(uint32_t) * arrayCount);
2755 for (i=0;i<arrayCount;i++) {
2756 fls[i] = getArrayFieldLength(i);
2760uint32_t* SDDSFile_getArrayFieldLengths(
void *sddsfile) {
2761 return(((SDDSFile*)sddsfile)->getArrayFieldLengths());
2775uint32_t SDDSFile::getArrayDimensions(int32_t index) {
2776 if ((index < 0) || (index >= arrayCount))
2778 return(arrayObject[index]->getDimensions());
2780uint32_t SDDSFile::getArrayDimensions(
char *name) {
2782 index = getArrayIndex(name);
2783 if ((index < 0) || (index >= arrayCount))
2785 return(arrayObject[index]->getDimensions());
2787uint32_t SDDSFile_getArrayDimensions(
void *sddsfile, int32_t index) {
2788 return(((SDDSFile*)sddsfile)->getArrayDimensions(index));
2801uint32_t* SDDSFile::getAllArrayDimensions() {
2804 fls = (uint32_t*)SDDS_malloc(
sizeof(uint32_t) * arrayCount);
2805 for (i=0;i<arrayCount;i++) {
2806 fls[i] = getArrayDimensions(i);
2810uint32_t* SDDSFile_getAllArrayDimensions(
void *sddsfile) {
2811 return(((SDDSFile*)sddsfile)->getAllArrayDimensions());
2825uint32_t SDDSFile::getColumnFieldLength(int32_t index) {
2826 if ((index < 0) || (index >= columnCount))
2828 return(columnObject[index]->getFieldLength());
2830uint32_t SDDSFile::getColumnFieldLength(
char *name) {
2832 index = getColumnIndex(name);
2833 if ((index < 0) || (index >= columnCount))
2835 return(columnObject[index]->getFieldLength());
2837uint32_t SDDSFile_getColumnFieldLength(
void *sddsfile, int32_t index) {
2838 return(((SDDSFile*)sddsfile)->getColumnFieldLength(index));
2851uint32_t* SDDSFile::getColumnFieldLengths() {
2854 fls = (uint32_t*)SDDS_malloc(
sizeof(uint32_t) * columnCount);
2855 for (i=0;i<columnCount;i++) {
2856 fls[i] = getColumnFieldLength(i);
2860uint32_t* SDDSFile_getColumnFieldLengths(
void *sddsfile) {
2861 return(((SDDSFile*)sddsfile)->getColumnFieldLengths());
2874int32_t SDDSFile::getArrayIndex(
char *name) {
2876 char s[SDDS_MAXLINE];
2877 for ( i=0 ; i<arrayCount ; i++ )
2878 if (strcmp(name, arrayObject[i]->getName()) == 0)
2880 sprintf(s,
"Warning: array %s does not exist (SDDSFile::getArrayIndex)", name);
2884int32_t SDDSFile_getArrayIndex(
void *sddsfile,
char *name) {
2885 return(((SDDSFile*)sddsfile)->getArrayIndex(name));
2898int32_t SDDSFile::getParameterIndex(
char *name) {
2900 char s[SDDS_MAXLINE];
2901 for ( i=0 ; i<parameterCount ; i++ )
2902 if (strcmp(name, parameterObject[i]->getName()) == 0)
2904 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterIndex)", name);
2908int32_t SDDSFile_getParameterIndex(
void *sddsfile,
char *name) {
2909 return(((SDDSFile*)sddsfile)->getParameterIndex(name));
2922int32_t SDDSFile::getColumnIndex(
char *name) {
2924 char s[SDDS_MAXLINE];
2925 for ( i=0 ; i<columnCount ; i++ )
2926 if (strcmp(name, columnObject[i]->getName()) == 0)
2928 sprintf(s,
"Warning: column %s does not exist (SDDSFile::getColumnIndex)", name);
2932int32_t SDDSFile_getColumnIndex(
void *sddsfile,
char *name) {
2933 return(((SDDSFile*)sddsfile)->getColumnIndex(name));
2947int32_t* SDDSFile::getArrayIndexes(
char** names, int32_t number) {
2950 n = (int32_t*)SDDS_malloc(
sizeof(int32_t) * number);
2951 for (i=0 ; i<number ; i++)
2952 n[i] = getArrayIndex(names[i]);
2955int32_t* SDDSFile_getArrayIndexes(
void *sddsfile,
char** names, int32_t number) {
2956 return(((SDDSFile*)sddsfile)->getArrayIndexes(names, number));
2970int32_t* SDDSFile::getParameterIndexes(
char** names, int32_t number) {
2973 n = (int32_t*)SDDS_malloc(
sizeof(int32_t) * number);
2974 for (i=0 ; i<number ; i++)
2975 n[i] = getParameterIndex(names[i]);
2978int32_t* SDDSFile_getParameterIndexes(
void *sddsfile,
char** names, int32_t number) {
2979 return(((SDDSFile*)sddsfile)->getParameterIndexes(names, number));
2993int32_t* SDDSFile::getColumnIndexes(
char** names, int32_t number) {
2996 n = (int32_t*)SDDS_malloc(
sizeof(int32_t) * number);
2997 for (i=0 ; i<number ; i++)
2998 n[i] = getColumnIndex(names[i]);
3001int32_t* SDDSFile_getColumnIndexes(
void *sddsfile,
char** names, int32_t number) {
3002 return(((SDDSFile*)sddsfile)->getColumnIndexes(names, number));
3054int32_t SDDSFile::setArray(int32_t arrayIndex, uint32_t page, int16_t *values, uint32_t elements) {
3056 char s[SDDS_MAXLINE];
3057 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
3058 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::setArray)", arrayIndex);
3062 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3065 }
else if (result == 1) {
3066 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3068 }
else if (result == 2) {
3069 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3071 }
else if (result == 3) {
3072 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3075 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3079int32_t SDDSFile::setArray(
char *name, uint32_t page, int16_t *values, uint32_t elements) {
3080 int32_t arrayIndex, result;
3081 char s[SDDS_MAXLINE];
3082 arrayIndex = getArrayIndex(name);
3083 if (arrayIndex < 0) {
3084 sprintf(s,
"Warning: array %s does not exist (SDDSFile::setArray)", name);
3088 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3091 }
else if (result == 1) {
3092 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3094 }
else if (result == 2) {
3095 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3097 }
else if (result == 3) {
3098 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3101 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3105int32_t SDDSFile::setArray(int32_t arrayIndex, uint32_t page, uint16_t *values, uint32_t elements) {
3107 char s[SDDS_MAXLINE];
3108 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
3109 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::setArray)", arrayIndex);
3113 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3116 }
else if (result == 1) {
3117 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3119 }
else if (result == 2) {
3120 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3122 }
else if (result == 3) {
3123 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3126 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3130int32_t SDDSFile::setArray(
char *name, uint32_t page, uint16_t *values, uint32_t elements) {
3131 int32_t arrayIndex, result;
3132 char s[SDDS_MAXLINE];
3133 arrayIndex = getArrayIndex(name);
3134 if (arrayIndex < 0) {
3135 sprintf(s,
"Warning: array %s does not exist (SDDSFile::setArray)", name);
3139 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3142 }
else if (result == 1) {
3143 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3145 }
else if (result == 2) {
3146 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3148 }
else if (result == 3) {
3149 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3152 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3156int32_t SDDSFile::setArray(int32_t arrayIndex, uint32_t page, int32_t *values, uint32_t elements) {
3158 char s[SDDS_MAXLINE];
3159 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
3160 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::setArray)", arrayIndex);
3164 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3167 }
else if (result == 1) {
3168 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3170 }
else if (result == 2) {
3171 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3173 }
else if (result == 3) {
3174 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3177 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3181int32_t SDDSFile::setArray(
char *name, uint32_t page, int32_t *values, uint32_t elements) {
3182 int32_t arrayIndex, result;
3183 char s[SDDS_MAXLINE];
3184 arrayIndex = getArrayIndex(name);
3185 if (arrayIndex < 0) {
3186 sprintf(s,
"Warning: array %s does not exist (SDDSFile::setArray)", name);
3190 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3193 }
else if (result == 1) {
3194 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3196 }
else if (result == 2) {
3197 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3199 }
else if (result == 3) {
3200 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3203 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3207int32_t SDDSFile::setArray(int32_t arrayIndex, uint32_t page, uint32_t *values, uint32_t elements) {
3209 char s[SDDS_MAXLINE];
3210 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
3211 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::setArray)", arrayIndex);
3215 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3218 }
else if (result == 1) {
3219 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3221 }
else if (result == 2) {
3222 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3224 }
else if (result == 3) {
3225 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3228 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3232int32_t SDDSFile::setArray(
char *name, uint32_t page, uint32_t *values, uint32_t elements) {
3233 int32_t arrayIndex, result;
3234 char s[SDDS_MAXLINE];
3235 arrayIndex = getArrayIndex(name);
3236 if (arrayIndex < 0) {
3237 sprintf(s,
"Warning: array %s does not exist (SDDSFile::setArray)", name);
3241 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3244 }
else if (result == 1) {
3245 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3247 }
else if (result == 2) {
3248 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3250 }
else if (result == 3) {
3251 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3254 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3258int32_t SDDSFile::setArray(int32_t arrayIndex, uint32_t page,
float *values, uint32_t elements) {
3260 char s[SDDS_MAXLINE];
3261 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
3262 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::setArray)", arrayIndex);
3266 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3269 }
else if (result == 1) {
3270 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3272 }
else if (result == 2) {
3273 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3275 }
else if (result == 3) {
3276 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3279 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3283int32_t SDDSFile::setArray(
char *name, uint32_t page,
float *values, uint32_t elements) {
3284 int32_t arrayIndex, result;
3285 char s[SDDS_MAXLINE];
3286 arrayIndex = getArrayIndex(name);
3287 if (arrayIndex < 0) {
3288 sprintf(s,
"Warning: array %s does not exist (SDDSFile::setArray)", name);
3292 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3295 }
else if (result == 1) {
3296 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3298 }
else if (result == 2) {
3299 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3301 }
else if (result == 3) {
3302 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3305 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3309int32_t SDDSFile::setArray(int32_t arrayIndex, uint32_t page,
double *values, uint32_t elements) {
3311 char s[SDDS_MAXLINE];
3312 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
3313 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::setArray)", arrayIndex);
3317 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3320 }
else if (result == 1) {
3321 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3323 }
else if (result == 2) {
3324 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3326 }
else if (result == 3) {
3327 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3330 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3334int32_t SDDSFile::setArray(
char *name, uint32_t page,
double *values, uint32_t elements) {
3335 int32_t arrayIndex, result;
3336 char s[SDDS_MAXLINE];
3337 arrayIndex = getArrayIndex(name);
3338 if (arrayIndex < 0) {
3339 sprintf(s,
"Warning: array %s does not exist (SDDSFile::setArray)", name);
3343 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3346 }
else if (result == 1) {
3347 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3349 }
else if (result == 2) {
3350 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3352 }
else if (result == 3) {
3353 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3356 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3360int32_t SDDSFile::setArray(int32_t arrayIndex, uint32_t page,
char **values, uint32_t elements) {
3362 char s[SDDS_MAXLINE];
3363 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
3364 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::setArray)", arrayIndex);
3368 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3371 }
else if (result == 1) {
3372 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3374 }
else if (result == 2) {
3375 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3377 }
else if (result == 3) {
3378 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3381 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3385int32_t SDDSFile::setArray(
char *name, uint32_t page,
char **values, uint32_t elements) {
3386 int32_t arrayIndex, result;
3387 char s[SDDS_MAXLINE];
3388 arrayIndex = getArrayIndex(name);
3389 if (arrayIndex < 0) {
3390 sprintf(s,
"Warning: array %s does not exist (SDDSFile::setArray)", name);
3394 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3397 }
else if (result == 1) {
3398 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3400 }
else if (result == 2) {
3401 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3403 }
else if (result == 3) {
3404 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3407 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3411int32_t SDDSFile::setArray(int32_t arrayIndex, uint32_t page,
char *values, uint32_t elements) {
3413 char s[SDDS_MAXLINE];
3414 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
3415 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::setArray)", arrayIndex);
3419 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3422 }
else if (result == 1) {
3423 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3425 }
else if (result == 2) {
3426 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3428 }
else if (result == 3) {
3429 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3432 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3436int32_t SDDSFile::setArray(
char *name, uint32_t page,
char *values, uint32_t elements) {
3437 int32_t arrayIndex, result;
3438 char s[SDDS_MAXLINE];
3439 arrayIndex = getArrayIndex(name);
3440 if (arrayIndex < 0) {
3441 sprintf(s,
"Warning: array %s does not exist (SDDSFile::setArray)", name);
3445 result = arrayObject[arrayIndex]->setValues(values, page, elements);
3448 }
else if (result == 1) {
3449 setError((
char*)
"Warning: invalid page number (SDDSFile::setArray)");
3451 }
else if (result == 2) {
3452 setError((
char*)
"Warning: unable to convert given value to proper array type (SDDSFile::setArray)");
3454 }
else if (result == 3) {
3455 setError((
char*)
"Warning: invalid array type (SDDSFile::setArray)");
3458 setError((
char*)
"Warning: unexpected error (SDDSFile::setArray)");
3462int32_t SDDSFile_setArray(
void *sddsfile, uint32_t page, uint32_t elements, int32_t mode, ...) {
3465 uint16_t *uint16Val;
3467 uint32_t *uint32Val;
3476 if (mode&SDDSFILE_SETARRAY_WITH_INDEX) {
3477 index = va_arg(ap, int32_t);
3478 if (mode&SDDSFILE_SETARRAY_WITH_INT16) {
3479 int16Val = va_arg(ap, int16_t*);
3480 return(((SDDSFile*)sddsfile)->setArray(index, page, int16Val, elements));
3481 }
else if (mode&SDDSFILE_SETARRAY_WITH_UINT16) {
3482 uint16Val = va_arg(ap, uint16_t*);
3483 return(((SDDSFile*)sddsfile)->setArray(index, page, uint16Val, elements));
3484 }
else if (mode&SDDSFILE_SETARRAY_WITH_INT32) {
3485 int32Val = va_arg(ap, int32_t*);
3486 return(((SDDSFile*)sddsfile)->setArray(index, page, int32Val, elements));
3487 }
else if (mode&SDDSFILE_SETARRAY_WITH_UINT32) {
3488 uint32Val = va_arg(ap, uint32_t*);
3489 return(((SDDSFile*)sddsfile)->setArray(index, page, uint32Val, elements));
3490 }
else if (mode&SDDSFILE_SETARRAY_WITH_REAL32) {
3491 real32Val = va_arg(ap,
float*);
3492 return(((SDDSFile*)sddsfile)->setArray(index, page, real32Val, elements));
3493 }
else if (mode&SDDSFILE_SETARRAY_WITH_REAL64) {
3494 real64Val = va_arg(ap,
double*);
3495 return(((SDDSFile*)sddsfile)->setArray(index, page, real64Val, elements));
3496 }
else if (mode&SDDSFILE_SETARRAY_WITH_STRING) {
3497 stringVal = va_arg(ap,
char**);
3498 return(((SDDSFile*)sddsfile)->setArray(index, page, stringVal, elements));
3500 charVal = va_arg(ap,
char*);
3501 return(((SDDSFile*)sddsfile)->setArray(index, page, charVal, elements));
3504 name = va_arg(ap,
char *);
3505 if (mode&SDDSFILE_SETARRAY_WITH_INT16) {
3506 int16Val = va_arg(ap, int16_t*);
3507 return(((SDDSFile*)sddsfile)->setArray(name, page, int16Val, elements));
3508 }
else if (mode&SDDSFILE_SETARRAY_WITH_UINT16) {
3509 uint16Val = va_arg(ap, uint16_t*);
3510 return(((SDDSFile*)sddsfile)->setArray(name, page, uint16Val, elements));
3511 }
else if (mode&SDDSFILE_SETARRAY_WITH_INT32) {
3512 int32Val = va_arg(ap, int32_t*);
3513 return(((SDDSFile*)sddsfile)->setArray(name, page, int32Val, elements));
3514 }
else if (mode&SDDSFILE_SETARRAY_WITH_UINT32) {
3515 uint32Val = va_arg(ap, uint32_t*);
3516 return(((SDDSFile*)sddsfile)->setArray(name, page, uint32Val, elements));
3517 }
else if (mode&SDDSFILE_SETARRAY_WITH_REAL32) {
3518 real32Val = va_arg(ap,
float*);
3519 return(((SDDSFile*)sddsfile)->setArray(name, page, real32Val, elements));
3520 }
else if (mode&SDDSFILE_SETARRAY_WITH_REAL64) {
3521 real64Val = va_arg(ap,
double*);
3522 return(((SDDSFile*)sddsfile)->setArray(name, page, real64Val, elements));
3523 }
else if (mode&SDDSFILE_SETARRAY_WITH_STRING) {
3524 stringVal = va_arg(ap,
char**);
3525 return(((SDDSFile*)sddsfile)->setArray(name, page, stringVal, elements));
3527 charVal = va_arg(ap,
char*);
3528 return(((SDDSFile*)sddsfile)->setArray(name, page, charVal, elements));
3574int32_t SDDSFile::setParameter(uint32_t page, int32_t parameterIndex, int32_t value) {
3575 char s[SDDS_MAXLINE];
3577 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
3578 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::setParameter)", parameterIndex);
3582 result = parameterObject[parameterIndex]->setValue(value, page);
3585 }
else if (result == 1) {
3586 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3588 }
else if (result == 2) {
3589 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3591 }
else if (result == 3) {
3592 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3595 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3599int32_t SDDSFile::setParameter(uint32_t startPage, uint32_t pages, int32_t parameterIndex, int32_t *value) {
3602 char s[SDDS_MAXLINE];
3603 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
3604 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::setParameter)", parameterIndex);
3608 for (i=0; i<pages; i++) {
3609 result = parameterObject[parameterIndex]->setValue(value[i], startPage + i);
3612 }
else if (result == 1) {
3613 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3615 }
else if (result == 2) {
3616 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3618 }
else if (result == 3) {
3619 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3622 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3628int32_t SDDSFile::setParameter(uint32_t page,
char *name, int32_t value) {
3629 int32_t parameterIndex, result;
3630 char s[SDDS_MAXLINE];
3631 parameterIndex = getParameterIndex(name);
3632 if (parameterIndex < 0) {
3633 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::setParameter)", name);
3637 result = parameterObject[parameterIndex]->setValue(value, page);
3640 }
else if (result == 1) {
3641 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3643 }
else if (result == 2) {
3644 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3646 }
else if (result == 3) {
3647 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3650 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3654int32_t SDDSFile::setParameter(uint32_t startPage, uint32_t pages,
char *name, int32_t *value) {
3655 int32_t parameterIndex, result;
3657 char s[SDDS_MAXLINE];
3658 parameterIndex = getParameterIndex(name);
3659 if (parameterIndex < 0) {
3660 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::setParameter)", name);
3664 for (i=0; i<pages; i++) {
3665 result = parameterObject[parameterIndex]->setValue(value[i], startPage + i);
3668 }
else if (result == 1) {
3669 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3671 }
else if (result == 2) {
3672 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3674 }
else if (result == 3) {
3675 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3678 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3684int32_t SDDSFile::setParameter(uint32_t page, int32_t parameterIndex, uint32_t value) {
3685 char s[SDDS_MAXLINE];
3687 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
3688 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::setParameter)", parameterIndex);
3692 result = parameterObject[parameterIndex]->setValue(value, page);
3695 }
else if (result == 1) {
3696 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3698 }
else if (result == 2) {
3699 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3701 }
else if (result == 3) {
3702 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3705 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3709int32_t SDDSFile::setParameter(uint32_t startPage, uint32_t pages, int32_t parameterIndex, uint32_t *value) {
3712 char s[SDDS_MAXLINE];
3713 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
3714 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::setParameter)", parameterIndex);
3718 for (i=0; i<pages; i++) {
3719 result = parameterObject[parameterIndex]->setValue(value[i], startPage + i);
3722 }
else if (result == 1) {
3723 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3725 }
else if (result == 2) {
3726 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3728 }
else if (result == 3) {
3729 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3732 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3738int32_t SDDSFile::setParameter(uint32_t page,
char *name, uint32_t value) {
3739 int32_t parameterIndex, result;
3740 char s[SDDS_MAXLINE];
3741 parameterIndex = getParameterIndex(name);
3742 if (parameterIndex < 0) {
3743 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::setParameter)", name);
3747 result = parameterObject[parameterIndex]->setValue(value, page);
3750 }
else if (result == 1) {
3751 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3753 }
else if (result == 2) {
3754 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3756 }
else if (result == 3) {
3757 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3760 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3764int32_t SDDSFile::setParameter(uint32_t startPage, uint32_t pages,
char *name, uint32_t *value) {
3765 int32_t parameterIndex, result;
3767 char s[SDDS_MAXLINE];
3768 parameterIndex = getParameterIndex(name);
3769 if (parameterIndex < 0) {
3770 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::setParameter)", name);
3774 for (i=0; i<pages; i++) {
3775 result = parameterObject[parameterIndex]->setValue(value[i], startPage + i);
3778 }
else if (result == 1) {
3779 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3781 }
else if (result == 2) {
3782 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3784 }
else if (result == 3) {
3785 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3788 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3794int32_t SDDSFile::setParameter(uint32_t page, int32_t parameterIndex,
double value) {
3795 char s[SDDS_MAXLINE];
3797 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
3798 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::setParameter)", parameterIndex);
3802 result = parameterObject[parameterIndex]->setValue(value, page);
3805 }
else if (result == 1) {
3806 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3808 }
else if (result == 2) {
3809 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3811 }
else if (result == 3) {
3812 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3815 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3819int32_t SDDSFile::setParameter(uint32_t startPage, uint32_t pages, int32_t parameterIndex,
double *value) {
3822 char s[SDDS_MAXLINE];
3823 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
3824 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::setParameter)", parameterIndex);
3828 for (i=0; i<pages; i++) {
3829 result = parameterObject[parameterIndex]->setValue(value[i], startPage + i);
3832 }
else if (result == 1) {
3833 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3835 }
else if (result == 2) {
3836 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3838 }
else if (result == 3) {
3839 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3842 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3848int32_t SDDSFile::setParameter(uint32_t page,
char *name,
double value) {
3849 int32_t parameterIndex, result;
3850 char s[SDDS_MAXLINE];
3851 parameterIndex = getParameterIndex(name);
3852 if (parameterIndex < 0) {
3853 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::setParameter)", name);
3857 result = parameterObject[parameterIndex]->setValue(value, page);
3860 }
else if (result == 1) {
3861 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3863 }
else if (result == 2) {
3864 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3866 }
else if (result == 3) {
3867 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3870 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3874int32_t SDDSFile::setParameter(uint32_t startPage, uint32_t pages,
char *name,
double *value) {
3875 int32_t parameterIndex, result;
3877 char s[SDDS_MAXLINE];
3878 parameterIndex = getParameterIndex(name);
3879 if (parameterIndex < 0) {
3880 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::setParameter)", name);
3884 for (i=0; i<pages; i++) {
3885 result = parameterObject[parameterIndex]->setValue(value[i], startPage + i);
3888 }
else if (result == 1) {
3889 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3891 }
else if (result == 2) {
3892 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3894 }
else if (result == 3) {
3895 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3898 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3904int32_t SDDSFile::setParameter(uint32_t page, int32_t parameterIndex,
char *value) {
3905 char s[SDDS_MAXLINE];
3907 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
3908 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::setParameter)", parameterIndex);
3912 result = parameterObject[parameterIndex]->setValue(value, page);
3915 }
else if (result == 1) {
3916 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3918 }
else if (result == 2) {
3919 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3921 }
else if (result == 3) {
3922 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3925 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3929int32_t SDDSFile::setParameter(uint32_t startPage, uint32_t pages, int32_t parameterIndex,
char **value) {
3932 char s[SDDS_MAXLINE];
3933 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
3934 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::setParameter)", parameterIndex);
3938 for (i=0; i<pages; i++) {
3939 result = parameterObject[parameterIndex]->setValue(value[i], startPage + i);
3942 }
else if (result == 1) {
3943 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3945 }
else if (result == 2) {
3946 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3948 }
else if (result == 3) {
3949 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3952 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3958int32_t SDDSFile::setParameter(uint32_t page,
char *name,
char *value) {
3959 int32_t parameterIndex, result;
3960 char s[SDDS_MAXLINE];
3961 parameterIndex = getParameterIndex(name);
3962 if (parameterIndex < 0) {
3963 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::setParameter)", name);
3967 result = parameterObject[parameterIndex]->setValue(value, page);
3970 }
else if (result == 1) {
3971 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
3973 }
else if (result == 2) {
3974 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
3976 }
else if (result == 3) {
3977 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
3980 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
3984int32_t SDDSFile::setParameter(uint32_t startPage, uint32_t pages,
char *name,
char **value) {
3985 int32_t parameterIndex, result;
3987 char s[SDDS_MAXLINE];
3988 parameterIndex = getParameterIndex(name);
3989 if (parameterIndex < 0) {
3990 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::setParameter)", name);
3994 for (i=0; i<pages; i++) {
3995 result = parameterObject[parameterIndex]->setValue(value[i], startPage + i);
3998 }
else if (result == 1) {
3999 setError((
char*)
"Warning: invalid page number (SDDSFile::setParameter)");
4001 }
else if (result == 2) {
4002 setError((
char*)
"Warning: unable to convert given value to proper parameter type (SDDSFile::setParameter)");
4004 }
else if (result == 3) {
4005 setError((
char*)
"Warning: invalid parameter type (SDDSFile::setParameter)");
4008 setError((
char*)
"Warning: unexpected error (SDDSFile::setParameter)");
4014int32_t SDDSFile_setParameter(
void *sddsfile, uint32_t page, int32_t mode, ...) {
4024 if (mode&SDDSFILE_SETPARAMETER_WITH_INDEX) {
4025 index = va_arg(ap, int32_t);
4026 if (mode&SDDSFILE_SETPARAMETER_WITH_INT) {
4027 intval = va_arg(ap, int32_t);
4028 return(((SDDSFile*)sddsfile)->setParameter(page, index, intval));
4029 }
else if (mode&SDDSFILE_SETPARAMETER_WITH_UINT) {
4030 uintval = va_arg(ap, uint32_t);
4031 return(((SDDSFile*)sddsfile)->setParameter(page, index, uintval));
4032 }
else if (mode&SDDSFILE_SETPARAMETER_WITH_FLOAT) {
4033 doubleval = va_arg(ap,
double);
4034 return(((SDDSFile*)sddsfile)->setParameter(page, index, doubleval));
4036 stringval = va_arg(ap,
char*);
4037 return(((SDDSFile*)sddsfile)->setParameter(page, index, stringval));
4040 name = va_arg(ap,
char *);
4041 if (mode&SDDSFILE_SETPARAMETER_WITH_INT) {
4042 intval = va_arg(ap, int32_t);
4043 return(((SDDSFile*)sddsfile)->setParameter(page, name, intval));
4044 }
else if (mode&SDDSFILE_SETPARAMETER_WITH_UINT) {
4045 uintval = va_arg(ap, uint32_t);
4046 return(((SDDSFile*)sddsfile)->setParameter(page, name, uintval));
4047 }
else if (mode&SDDSFILE_SETPARAMETER_WITH_FLOAT) {
4048 doubleval = va_arg(ap,
double);
4049 return(((SDDSFile*)sddsfile)->setParameter(page, name, doubleval));
4051 stringval = va_arg(ap,
char*);
4052 return(((SDDSFile*)sddsfile)->setParameter(page, name, stringval));
4106int32_t SDDSFile::setColumn(int32_t columnIndex, uint32_t page, uint32_t startRow, int16_t *values, uint32_t rows) {
4108 char s[SDDS_MAXLINE];
4109 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
4110 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::setColumn)", columnIndex);
4114 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4117 }
else if (result == 1) {
4118 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4120 }
else if (result == 2) {
4121 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4123 }
else if (result == 3) {
4124 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4126 }
else if (result == 4) {
4127 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4130 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4134int32_t SDDSFile::setColumn(
char *name, uint32_t page, uint32_t startRow, int16_t *values, uint32_t rows) {
4135 int32_t columnIndex, result;
4136 char s[SDDS_MAXLINE];
4137 columnIndex = getColumnIndex(name);
4138 if (columnIndex < 0) {
4139 sprintf(s,
"Warning: column %s does not exist (SDDSFile::setColumn)", name);
4143 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4146 }
else if (result == 1) {
4147 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4149 }
else if (result == 2) {
4150 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4152 }
else if (result == 3) {
4153 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4155 }
else if (result == 4) {
4156 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4159 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4163int32_t SDDSFile::setColumn(int32_t columnIndex, uint32_t page, uint32_t startRow, uint16_t *values, uint32_t rows) {
4165 char s[SDDS_MAXLINE];
4166 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
4167 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::setColumn)", columnIndex);
4171 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4174 }
else if (result == 1) {
4175 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4177 }
else if (result == 2) {
4178 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4180 }
else if (result == 3) {
4181 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4183 }
else if (result == 4) {
4184 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4187 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4191int32_t SDDSFile::setColumn(
char *name, uint32_t page, uint32_t startRow, uint16_t *values, uint32_t rows) {
4192 int32_t columnIndex, result;
4193 char s[SDDS_MAXLINE];
4194 columnIndex = getColumnIndex(name);
4195 if (columnIndex < 0) {
4196 sprintf(s,
"Warning: column %s does not exist (SDDSFile::setColumn)", name);
4200 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4203 }
else if (result == 1) {
4204 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4206 }
else if (result == 2) {
4207 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4209 }
else if (result == 3) {
4210 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4212 }
else if (result == 4) {
4213 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4216 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4220int32_t SDDSFile::setColumn(int32_t columnIndex, uint32_t page, uint32_t startRow, int32_t *values, uint32_t rows) {
4222 char s[SDDS_MAXLINE];
4223 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
4224 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::setColumn)", columnIndex);
4228 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4231 }
else if (result == 1) {
4232 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4234 }
else if (result == 2) {
4235 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4237 }
else if (result == 3) {
4238 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4240 }
else if (result == 4) {
4241 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4244 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4248int32_t SDDSFile::setColumn(
char *name, uint32_t page, uint32_t startRow, int32_t *values, uint32_t rows) {
4249 int32_t columnIndex, result;
4250 char s[SDDS_MAXLINE];
4251 columnIndex = getColumnIndex(name);
4252 if (columnIndex < 0) {
4253 sprintf(s,
"Warning: column %s does not exist (SDDSFile::setColumn)", name);
4257 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4260 }
else if (result == 1) {
4261 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4263 }
else if (result == 2) {
4264 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4266 }
else if (result == 3) {
4267 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4269 }
else if (result == 4) {
4270 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4273 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4277int32_t SDDSFile::setColumn(int32_t columnIndex, uint32_t page, uint32_t startRow, uint32_t *values, uint32_t rows) {
4279 char s[SDDS_MAXLINE];
4280 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
4281 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::setColumn)", columnIndex);
4285 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4288 }
else if (result == 1) {
4289 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4291 }
else if (result == 2) {
4292 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4294 }
else if (result == 3) {
4295 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4297 }
else if (result == 4) {
4298 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4301 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4305int32_t SDDSFile::setColumn(
char *name, uint32_t page, uint32_t startRow, uint32_t *values, uint32_t rows) {
4306 int32_t columnIndex, result;
4307 char s[SDDS_MAXLINE];
4308 columnIndex = getColumnIndex(name);
4309 if (columnIndex < 0) {
4310 sprintf(s,
"Warning: column %s does not exist (SDDSFile::setColumn)", name);
4314 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4317 }
else if (result == 1) {
4318 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4320 }
else if (result == 2) {
4321 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4323 }
else if (result == 3) {
4324 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4326 }
else if (result == 4) {
4327 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4330 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4334int32_t SDDSFile::setColumn(int32_t columnIndex, uint32_t page, uint32_t startRow,
float *values, uint32_t rows) {
4336 char s[SDDS_MAXLINE];
4337 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
4338 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::setColumn)", columnIndex);
4342 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4345 }
else if (result == 1) {
4346 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4348 }
else if (result == 2) {
4349 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4351 }
else if (result == 3) {
4352 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4354 }
else if (result == 4) {
4355 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4358 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4362int32_t SDDSFile::setColumn(
char *name, uint32_t page, uint32_t startRow,
float *values, uint32_t rows) {
4363 int32_t columnIndex, result;
4364 char s[SDDS_MAXLINE];
4365 columnIndex = getColumnIndex(name);
4366 if (columnIndex < 0) {
4367 sprintf(s,
"Warning: column %s does not exist (SDDSFile::setColumn)", name);
4371 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4374 }
else if (result == 1) {
4375 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4377 }
else if (result == 2) {
4378 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4380 }
else if (result == 3) {
4381 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4383 }
else if (result == 4) {
4384 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4387 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4391int32_t SDDSFile::setColumn(int32_t columnIndex, uint32_t page, uint32_t startRow,
double *values, uint32_t rows) {
4393 char s[SDDS_MAXLINE];
4394 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
4395 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::setColumn)", columnIndex);
4399 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4402 }
else if (result == 1) {
4403 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4405 }
else if (result == 2) {
4406 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4408 }
else if (result == 3) {
4409 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4411 }
else if (result == 4) {
4412 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4415 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4419int32_t SDDSFile::setColumn(
char *name, uint32_t page, uint32_t startRow,
double *values, uint32_t rows) {
4420 int32_t columnIndex, result;
4421 char s[SDDS_MAXLINE];
4422 columnIndex = getColumnIndex(name);
4423 if (columnIndex < 0) {
4424 sprintf(s,
"Warning: column %s does not exist (SDDSFile::setColumn)", name);
4428 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4431 }
else if (result == 1) {
4432 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4434 }
else if (result == 2) {
4435 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4437 }
else if (result == 3) {
4438 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4440 }
else if (result == 4) {
4441 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4444 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4448int32_t SDDSFile::setColumn(int32_t columnIndex, uint32_t page, uint32_t startRow,
char **values, uint32_t rows) {
4450 char s[SDDS_MAXLINE];
4451 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
4452 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::setColumn)", columnIndex);
4456 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4459 }
else if (result == 1) {
4460 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4462 }
else if (result == 2) {
4463 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4465 }
else if (result == 3) {
4466 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4468 }
else if (result == 4) {
4469 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4472 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4476int32_t SDDSFile::setColumn(
char *name, uint32_t page, uint32_t startRow,
char **values, uint32_t rows) {
4477 int32_t columnIndex, result;
4478 char s[SDDS_MAXLINE];
4479 columnIndex = getColumnIndex(name);
4480 if (columnIndex < 0) {
4481 sprintf(s,
"Warning: column %s does not exist (SDDSFile::setColumn)", name);
4485 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4488 }
else if (result == 1) {
4489 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4491 }
else if (result == 2) {
4492 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4494 }
else if (result == 3) {
4495 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4497 }
else if (result == 4) {
4498 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4501 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4505int32_t SDDSFile::setColumn(int32_t columnIndex, uint32_t page, uint32_t startRow,
char *values, uint32_t rows) {
4507 char s[SDDS_MAXLINE];
4508 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
4509 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::setColumn)", columnIndex);
4513 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4516 }
else if (result == 1) {
4517 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4519 }
else if (result == 2) {
4520 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4522 }
else if (result == 3) {
4523 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4525 }
else if (result == 4) {
4526 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4529 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4533int32_t SDDSFile::setColumn(
char *name, uint32_t page, uint32_t startRow,
char *values, uint32_t rows) {
4534 int32_t columnIndex, result;
4535 char s[SDDS_MAXLINE];
4536 columnIndex = getColumnIndex(name);
4537 if (columnIndex < 0) {
4538 sprintf(s,
"Warning: column %s does not exist (SDDSFile::setColumn)", name);
4542 result = columnObject[columnIndex]->setValues(values, page, startRow, rows);
4545 }
else if (result == 1) {
4546 setError((
char*)
"Warning: invalid page number (SDDSFile::setColumn)");
4548 }
else if (result == 2) {
4549 setError((
char*)
"Warning: invalid startRow number (SDDSFile::setColumn)");
4551 }
else if (result == 3) {
4552 setError((
char*)
"Warning: unable to convert given value to proper column type (SDDSFile::setColumn)");
4554 }
else if (result == 4) {
4555 setError((
char*)
"Warning: invalid column type (SDDSFile::setColumn)");
4558 setError((
char*)
"Warning: unexpected error (SDDSFile::setColumn)");
4562int32_t SDDSFile_setColumn(
void *sddsfile, uint32_t page, uint32_t startRow, uint32_t rows, int32_t mode, ...) {
4565 uint16_t *uint16Val;
4567 uint32_t *uint32Val;
4576 if (mode&SDDSFILE_SETCOLUMN_WITH_INDEX) {
4577 index = va_arg(ap, int32_t);
4578 if (mode&SDDSFILE_SETCOLUMN_WITH_INT16) {
4579 int16Val = va_arg(ap, int16_t*);
4580 return(((SDDSFile*)sddsfile)->setColumn(index, page, startRow, int16Val, rows));
4581 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_UINT16) {
4582 uint16Val = va_arg(ap, uint16_t*);
4583 return(((SDDSFile*)sddsfile)->setColumn(index, page, startRow, uint16Val, rows));
4584 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_INT32) {
4585 int32Val = va_arg(ap, int32_t*);
4586 return(((SDDSFile*)sddsfile)->setColumn(index, page, startRow, int32Val, rows));
4587 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_UINT32) {
4588 uint32Val = va_arg(ap, uint32_t*);
4589 return(((SDDSFile*)sddsfile)->setColumn(index, page, startRow, uint32Val, rows));
4590 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_REAL32) {
4591 real32Val = va_arg(ap,
float*);
4592 return(((SDDSFile*)sddsfile)->setColumn(index, page, startRow, real32Val, rows));
4593 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_REAL64) {
4594 real64Val = va_arg(ap,
double*);
4595 return(((SDDSFile*)sddsfile)->setColumn(index, page, startRow, real64Val, rows));
4596 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_STRING) {
4597 stringVal = va_arg(ap,
char**);
4598 return(((SDDSFile*)sddsfile)->setColumn(index, page, startRow, stringVal, rows));
4600 charVal = va_arg(ap,
char*);
4601 return(((SDDSFile*)sddsfile)->setColumn(index, page, startRow, charVal, rows));
4604 name = va_arg(ap,
char *);
4605 if (mode&SDDSFILE_SETCOLUMN_WITH_INT16) {
4606 int16Val = va_arg(ap, int16_t*);
4607 return(((SDDSFile*)sddsfile)->setColumn(name, page, startRow, int16Val, rows));
4608 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_UINT16) {
4609 uint16Val = va_arg(ap, uint16_t*);
4610 return(((SDDSFile*)sddsfile)->setColumn(name, page, startRow, uint16Val, rows));
4611 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_INT32) {
4612 int32Val = va_arg(ap, int32_t*);
4613 return(((SDDSFile*)sddsfile)->setColumn(name, page, startRow, int32Val, rows));
4614 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_UINT32) {
4615 uint32Val = va_arg(ap, uint32_t*);
4616 return(((SDDSFile*)sddsfile)->setColumn(name, page, startRow, uint32Val, rows));
4617 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_REAL32) {
4618 real32Val = va_arg(ap,
float*);
4619 return(((SDDSFile*)sddsfile)->setColumn(name, page, startRow, real32Val, rows));
4620 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_REAL64) {
4621 real64Val = va_arg(ap,
double*);
4622 return(((SDDSFile*)sddsfile)->setColumn(name, page, startRow, real64Val, rows));
4623 }
else if (mode&SDDSFILE_SETCOLUMN_WITH_STRING) {
4624 stringVal = va_arg(ap,
char**);
4625 return(((SDDSFile*)sddsfile)->setColumn(name, page, startRow, stringVal, rows));
4627 charVal = va_arg(ap,
char*);
4628 return(((SDDSFile*)sddsfile)->setColumn(name, page, startRow, charVal, rows));
4648int32_t SDDSFile::getParameterInInt32(int32_t parameterIndex, uint32_t page) {
4651 char s[SDDS_MAXLINE];
4652 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
4653 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::getParameterInInt32)", parameterIndex);
4657 result = parameterObject[parameterIndex]->getValueInInt32(page, &errorcode);
4658 if (result == LONG_MAX) {
4659 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInInt32)", getParameterName(parameterIndex));
4661 if (errorcode == 1) {
4662 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInInt32)");
4663 }
else if (errorcode == 2) {
4664 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInInt32)");
4665 }
else if (errorcode == 3) {
4666 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInInt32)");
4670 return((int32_t)result);
4673int32_t SDDSFile::getParameterInInt32(
char *name, uint32_t page) {
4676 int32_t parameterIndex;
4677 char s[SDDS_MAXLINE];
4678 parameterIndex = getParameterIndex(name);
4679 if (parameterIndex < 0) {
4680 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterInInt32)", name);
4684 result = parameterObject[parameterIndex]->getValueInInt32(page, &errorcode);
4685 if (result == LONG_MAX) {
4686 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInInt32)", name);
4688 if (errorcode == 1) {
4689 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInInt32)");
4690 }
else if (errorcode == 2) {
4691 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInInt32)");
4692 }
else if (errorcode == 3) {
4693 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInInt32)");
4697 return((int32_t)result);
4700int32_t SDDSFile_getParameterInInt32(
void *sddsfile, uint32_t page, int32_t mode, ...) {
4706 if (mode&SDDSFILE_GETPARAMETER_WITH_INDEX) {
4707 index = va_arg(ap, int32_t);
4708 return(((SDDSFile*)sddsfile)->getParameterInInt32(index, page));
4710 name = va_arg(ap,
char *);
4711 return(((SDDSFile*)sddsfile)->getParameterInInt32(name, page));
4730uint32_t SDDSFile::getParameterInUInt32(int32_t parameterIndex, uint32_t page) {
4733 char s[SDDS_MAXLINE];
4734 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
4735 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::getParameterInUInt32)", parameterIndex);
4737 return((uint32_t)0);
4739 result = parameterObject[parameterIndex]->getValueInUInt32(page, &errorcode);
4740 if (result == ULONG_MAX) {
4741 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInUInt32)", getParameterName(parameterIndex));
4743 if (errorcode == 1) {
4744 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInUInt32)");
4745 }
else if (errorcode == 2) {
4746 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInUInt32)");
4747 }
else if (errorcode == 3) {
4748 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInUInt32)");
4750 return((uint32_t)0);
4752 return((uint32_t)result);
4755uint32_t SDDSFile::getParameterInUInt32(
char *name, uint32_t page) {
4758 int32_t parameterIndex;
4759 char s[SDDS_MAXLINE];
4760 parameterIndex = getParameterIndex(name);
4761 if (parameterIndex < 0) {
4762 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterInUInt32)", name);
4764 return((uint32_t)0);
4766 result = parameterObject[parameterIndex]->getValueInUInt32(page, &errorcode);
4767 if (result == ULONG_MAX) {
4768 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInUInt32)", name);
4770 if (errorcode == 1) {
4771 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInUInt32)");
4772 }
else if (errorcode == 2) {
4773 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInUInt32)");
4774 }
else if (errorcode == 3) {
4775 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInUInt32)");
4777 return((uint32_t)0);
4779 return((uint32_t)result);
4782uint32_t SDDSFile_getParameterInUInt32(
void *sddsfile, uint32_t page, int32_t mode, ...) {
4788 if (mode&SDDSFILE_GETPARAMETER_WITH_INDEX) {
4789 index = va_arg(ap, int32_t);
4790 return(((SDDSFile*)sddsfile)->getParameterInUInt32(index, page));
4792 name = va_arg(ap,
char *);
4793 return(((SDDSFile*)sddsfile)->getParameterInUInt32(name, page));
4812double SDDSFile::getParameterInDouble(int32_t parameterIndex, uint32_t page) {
4815 char s[SDDS_MAXLINE];
4816 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
4817 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::getParameterInDouble)", parameterIndex);
4821 result = parameterObject[parameterIndex]->getValueInDouble(page, &errorcode);
4822 if (result == HUGE_VAL) {
4823 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInDouble)", getParameterName(parameterIndex));
4825 if (errorcode == 1) {
4826 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInDouble)");
4827 }
else if (errorcode == 2) {
4828 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInDouble)");
4829 }
else if (errorcode == 3) {
4830 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInDouble)");
4834 return((
double)result);
4837double SDDSFile::getParameterInDouble(
char *name, uint32_t page) {
4840 int32_t parameterIndex;
4841 char s[SDDS_MAXLINE];
4842 parameterIndex = getParameterIndex(name);
4843 if (parameterIndex < 0) {
4844 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterInDouble)", name);
4848 result = parameterObject[parameterIndex]->getValueInDouble(page, &errorcode);
4849 if (result == HUGE_VAL) {
4850 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInDouble)", name);
4852 if (errorcode == 1) {
4853 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInDouble)");
4854 }
else if (errorcode == 2) {
4855 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInDouble)");
4856 }
else if (errorcode == 3) {
4857 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInDouble)");
4861 return((
double)result);
4864double SDDSFile_getParameterInDouble(
void *sddsfile, uint32_t page, int32_t mode, ...) {
4870 if (mode&SDDSFILE_GETPARAMETER_WITH_INDEX) {
4871 index = va_arg(ap, int32_t);
4872 return(((SDDSFile*)sddsfile)->getParameterInDouble(index, page));
4874 name = va_arg(ap,
char *);
4875 return(((SDDSFile*)sddsfile)->getParameterInDouble(name, page));
4893char* SDDSFile::getParameterInString(int32_t parameterIndex, uint32_t page) {
4896 char s[SDDS_MAXLINE];
4897 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
4898 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::getParameterInString)", parameterIndex);
4900 return((
char*)NULL);
4902 result = parameterObject[parameterIndex]->getValueInString(page, &errorcode);
4903 if (result == NULL) {
4904 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInString)", getParameterName(parameterIndex));
4906 if (errorcode == 1) {
4907 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInString)");
4908 }
else if (errorcode == 2) {
4909 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInString)");
4910 }
else if (errorcode == 3) {
4911 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInString)");
4913 return((
char*)NULL);
4915 return((
char*)result);
4918char* SDDSFile::getParameterInString(
char *name, uint32_t page) {
4921 int32_t parameterIndex;
4922 char s[SDDS_MAXLINE];
4923 parameterIndex = getParameterIndex(name);
4924 if (parameterIndex < 0) {
4925 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterInString)", name);
4927 return((
char*)NULL);
4929 result = parameterObject[parameterIndex]->getValueInString(page, &errorcode);
4930 if (result == NULL) {
4931 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInString)", name);
4933 if (errorcode == 1) {
4934 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInString)");
4935 }
else if (errorcode == 2) {
4936 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInString)");
4937 }
else if (errorcode == 3) {
4938 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInString)");
4940 return((
char*)NULL);
4942 return((
char*)result);
4945char* SDDSFile_getParameterInString(
void *sddsfile, uint32_t page, int32_t mode, ...) {
4951 if (mode&SDDSFILE_GETPARAMETER_WITH_INDEX) {
4952 index = va_arg(ap, int32_t);
4953 return(((SDDSFile*)sddsfile)->getParameterInString(index, page));
4955 name = va_arg(ap,
char *);
4956 return(((SDDSFile*)sddsfile)->getParameterInString(name, page));
4973void* SDDSFile::getInternalArray(int32_t arrayIndex, uint32_t page) {
4974 char s[SDDS_MAXLINE];
4975 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
4976 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::getInternalArray)", arrayIndex);
4980 return(arrayObject[arrayIndex]->getInternalValues(page));
4982void* SDDSFile::getInternalArray(
char *name, uint32_t page) {
4984 char s[SDDS_MAXLINE];
4985 arrayIndex = getArrayIndex(name);
4986 if (arrayIndex < 0) {
4987 sprintf(s,
"Warning: array %s does not exist (SDDSFile::getInternalArray)", name);
4991 return(arrayObject[arrayIndex]->getInternalValues(page));
4993void* SDDSFile_getInternalArray(
void *sddsfile, uint32_t page, int32_t mode, ...) {
4999 if (mode&SDDSFILE_GETARRAY_WITH_INDEX) {
5000 index = va_arg(ap, int32_t);
5001 return(((SDDSFile*)sddsfile)->getInternalArray(index, page));
5003 name = va_arg(ap,
char *);
5004 return(((SDDSFile*)sddsfile)->getInternalArray(name, page));
5024int32_t* SDDSFile::getArrayInInt32(int32_t arrayIndex, uint32_t page) {
5027 char s[SDDS_MAXLINE];
5028 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
5029 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::getArrayInInt32)", arrayIndex);
5031 return((int32_t*)NULL);
5033 result = arrayObject[arrayIndex]->getValuesInInt32(page, &errorcode);
5034 if (result == NULL) {
5035 if (errorcode == 1) {
5036 setError((
char*)
"Warning: array value undefined (SDDSFile::getArrayInInt32)");
5037 }
else if (errorcode == 2) {
5038 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getArrayInInt32)");
5039 }
else if (errorcode == 3) {
5040 setError((
char*)
"Warning: invalid array type (SDDSFile::getArrayInInt32)");
5043 return((int32_t*)result);
5046int32_t* SDDSFile::getArrayInInt32(
char *name, uint32_t page) {
5050 char s[SDDS_MAXLINE];
5051 arrayIndex = getArrayIndex(name);
5052 if (arrayIndex < 0) {
5053 sprintf(s,
"Warning: array %s does not exist (SDDSFile::getArrayInInt32)", name);
5055 return((int32_t*)NULL);
5057 result = arrayObject[arrayIndex]->getValuesInInt32(page, &errorcode);
5058 if (result == NULL) {
5059 if (errorcode == 1) {
5060 setError((
char*)
"Warning: array value undefined (SDDSFile::getArrayInInt32)");
5061 }
else if (errorcode == 2) {
5062 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getArrayInInt32)");
5063 }
else if (errorcode == 3) {
5064 setError((
char*)
"Warning: invalid array type (SDDSFile::getArrayInInt32)");
5067 return((int32_t*)result);
5070int32_t* SDDSFile_getArrayInInt32(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5076 if (mode&SDDSFILE_GETARRAY_WITH_INDEX) {
5077 index = va_arg(ap, int32_t);
5078 return(((SDDSFile*)sddsfile)->getArrayInInt32(index, page));
5080 name = va_arg(ap,
char *);
5081 return(((SDDSFile*)sddsfile)->getArrayInInt32(name, page));
5101uint32_t* SDDSFile::getArrayInUInt32(int32_t arrayIndex, uint32_t page) {
5104 char s[SDDS_MAXLINE];
5105 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
5106 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::getArrayInUInt32)", arrayIndex);
5108 return((uint32_t*)NULL);
5110 result = arrayObject[arrayIndex]->getValuesInUInt32(page, &errorcode);
5111 if (result == NULL) {
5112 if (errorcode == 1) {
5113 setError((
char*)
"Warning: array value undefined (SDDSFile::getArrayInUInt32)");
5114 }
else if (errorcode == 2) {
5115 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getArrayInUInt32)");
5116 }
else if (errorcode == 3) {
5117 setError((
char*)
"Warning: invalid array type (SDDSFile::getArrayInUInt32)");
5120 return((uint32_t*)result);
5123uint32_t* SDDSFile::getArrayInUInt32(
char *name, uint32_t page) {
5127 char s[SDDS_MAXLINE];
5128 arrayIndex = getArrayIndex(name);
5129 if (arrayIndex < 0) {
5130 sprintf(s,
"Warning: array %s does not exist (SDDSFile::getArrayInUInt32)", name);
5132 return((uint32_t*)NULL);
5134 result = arrayObject[arrayIndex]->getValuesInUInt32(page, &errorcode);
5135 if (result == NULL) {
5136 if (errorcode == 1) {
5137 setError((
char*)
"Warning: array value undefined (SDDSFile::getArrayInUInt32)");
5138 }
else if (errorcode == 2) {
5139 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getArrayInUInt32)");
5140 }
else if (errorcode == 3) {
5141 setError((
char*)
"Warning: invalid array type (SDDSFile::getArrayInUInt32)");
5144 return((uint32_t*)result);
5147uint32_t* SDDSFile_getArrayInUInt32(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5153 if (mode&SDDSFILE_GETARRAY_WITH_INDEX) {
5154 index = va_arg(ap, int32_t);
5155 return(((SDDSFile*)sddsfile)->getArrayInUInt32(index, page));
5157 name = va_arg(ap,
char *);
5158 return(((SDDSFile*)sddsfile)->getArrayInUInt32(name, page));
5178double* SDDSFile::getArrayInDouble(int32_t arrayIndex, uint32_t page) {
5181 char s[SDDS_MAXLINE];
5182 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
5183 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::getArrayInDouble)", arrayIndex);
5185 return((
double*)NULL);
5187 result = arrayObject[arrayIndex]->getValuesInDouble(page, &errorcode);
5188 if (result == NULL) {
5189 if (errorcode == 1) {
5190 setError((
char*)
"Warning: array value undefined (SDDSFile::getArrayInDouble)");
5191 }
else if (errorcode == 2) {
5192 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getArrayInDouble)");
5193 }
else if (errorcode == 3) {
5194 setError((
char*)
"Warning: invalid array type (SDDSFile::getArrayInDouble)");
5197 return((
double*)result);
5200double* SDDSFile::getArrayInDouble(
char *name, uint32_t page) {
5204 char s[SDDS_MAXLINE];
5205 arrayIndex = getArrayIndex(name);
5206 if (arrayIndex < 0) {
5207 sprintf(s,
"Warning: array %s does not exist (SDDSFile::getArrayInDouble)", name);
5209 return((
double*)NULL);
5211 result = arrayObject[arrayIndex]->getValuesInDouble(page, &errorcode);
5212 if (result == NULL) {
5213 if (errorcode == 1) {
5214 setError((
char*)
"Warning: array value undefined (SDDSFile::getArrayInDouble)");
5215 }
else if (errorcode == 2) {
5216 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getArrayInDouble)");
5217 }
else if (errorcode == 3) {
5218 setError((
char*)
"Warning: invalid array type (SDDSFile::getArrayInDouble)");
5221 return((
double*)result);
5224double* SDDSFile_getArrayInDouble(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5230 if (mode&SDDSFILE_GETARRAY_WITH_INDEX) {
5231 index = va_arg(ap, int32_t);
5232 return(((SDDSFile*)sddsfile)->getArrayInDouble(index, page));
5234 name = va_arg(ap,
char *);
5235 return(((SDDSFile*)sddsfile)->getArrayInDouble(name, page));
5256char** SDDSFile::getArrayInString(int32_t arrayIndex, uint32_t page) {
5259 char s[SDDS_MAXLINE];
5260 if ((arrayIndex < 0) || (arrayIndex >= arrayCount)) {
5261 sprintf(s,
"Warning: array index %"PRId32
" does not exist (SDDSFile::getArrayInString)", arrayIndex);
5263 return((
char**)NULL);
5265 result = arrayObject[arrayIndex]->getValuesInString(page, &errorcode);
5266 if (result == NULL) {
5267 if (errorcode == 1) {
5268 setError((
char*)
"Warning: array value undefined (SDDSFile::getArrayInString)");
5269 }
else if (errorcode == 2) {
5270 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getArrayInString)");
5271 }
else if (errorcode == 3) {
5272 setError((
char*)
"Warning: invalid array type (SDDSFile::getArrayInString)");
5275 return((
char**)result);
5278char** SDDSFile::getArrayInString(
char *name, uint32_t page) {
5282 char s[SDDS_MAXLINE];
5283 arrayIndex = getArrayIndex(name);
5284 if (arrayIndex < 0) {
5285 sprintf(s,
"Warning: array %s does not exist (SDDSFile::getArrayInString)", name);
5287 return((
char**)NULL);
5289 result = arrayObject[arrayIndex]->getValuesInString(page, &errorcode);
5290 if (result == NULL) {
5291 if (errorcode == 1) {
5292 setError((
char*)
"Warning: array value undefined (SDDSFile::getArrayInString)");
5293 }
else if (errorcode == 2) {
5294 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getArrayInString)");
5295 }
else if (errorcode == 3) {
5296 setError((
char*)
"Warning: invalid array type (SDDSFile::getArrayInString)");
5299 return((
char**)result);
5302char** SDDSFile_getArrayInString(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5308 if (mode&SDDSFILE_GETARRAY_WITH_INDEX) {
5309 index = va_arg(ap, int32_t);
5310 return(((SDDSFile*)sddsfile)->getArrayInString(index, page));
5312 name = va_arg(ap,
char *);
5313 return(((SDDSFile*)sddsfile)->getArrayInString(name, page));
5330void* SDDSFile::getInternalColumn(int32_t columnIndex, uint32_t page) {
5331 char s[SDDS_MAXLINE];
5332 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
5333 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::getInternalColumn)", columnIndex);
5337 return(columnObject[columnIndex]->getInternalValues(page));
5339void* SDDSFile::getInternalColumn(
char *name, uint32_t page) {
5340 int32_t columnIndex;
5341 char s[SDDS_MAXLINE];
5342 columnIndex = getColumnIndex(name);
5343 if (columnIndex < 0) {
5344 sprintf(s,
"Warning: column %s does not exist (SDDSFile::getInternalColumn)", name);
5348 return(columnObject[columnIndex]->getInternalValues(page));
5350void* SDDSFile_getInternalColumn(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5356 if (mode&SDDSFILE_GETCOLUMN_WITH_INDEX) {
5357 index = va_arg(ap, int32_t);
5358 return(((SDDSFile*)sddsfile)->getInternalColumn(index, page));
5360 name = va_arg(ap,
char *);
5361 return(((SDDSFile*)sddsfile)->getInternalColumn(name, page));
5381int32_t* SDDSFile::getColumnInInt32(int32_t columnIndex, uint32_t page) {
5384 char s[SDDS_MAXLINE];
5385 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
5386 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::getColumnInInt32)", columnIndex);
5388 return((int32_t*)NULL);
5390 result = columnObject[columnIndex]->getValuesInInt32(page, &errorcode);
5391 if (result == NULL) {
5392 if (errorcode == 1) {
5393 setError((
char*)
"Warning: column value undefined (SDDSFile::getColumnInInt32)");
5394 }
else if (errorcode == 2) {
5395 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getColumnInInt32)");
5396 }
else if (errorcode == 3) {
5397 setError((
char*)
"Warning: invalid column type (SDDSFile::getColumnInInt32)");
5400 return((int32_t*)result);
5403int32_t* SDDSFile::getColumnInInt32(
char *name, uint32_t page) {
5406 int32_t columnIndex;
5407 char s[SDDS_MAXLINE];
5408 columnIndex = getColumnIndex(name);
5409 if (columnIndex < 0) {
5410 sprintf(s,
"Warning: column %s does not exist (SDDSFile::getColumnInInt32)", name);
5412 return((int32_t*)NULL);
5414 result = columnObject[columnIndex]->getValuesInInt32(page, &errorcode);
5415 if (result == NULL) {
5416 if (errorcode == 1) {
5417 setError((
char*)
"Warning: column value undefined (SDDSFile::getColumnInInt32)");
5418 }
else if (errorcode == 2) {
5419 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getColumnInInt32)");
5420 }
else if (errorcode == 3) {
5421 setError((
char*)
"Warning: invalid column type (SDDSFile::getColumnInInt32)");
5424 return((int32_t*)result);
5427int32_t* SDDSFile_getColumnInInt32(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5433 if (mode&SDDSFILE_GETCOLUMN_WITH_INDEX) {
5434 index = va_arg(ap, int32_t);
5435 return(((SDDSFile*)sddsfile)->getColumnInInt32(index, page));
5437 name = va_arg(ap,
char *);
5438 return(((SDDSFile*)sddsfile)->getColumnInInt32(name, page));
5458uint32_t* SDDSFile::getColumnInUInt32(int32_t columnIndex, uint32_t page) {
5461 char s[SDDS_MAXLINE];
5462 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
5463 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::getColumnInUInt32)", columnIndex);
5465 return((uint32_t*)NULL);
5467 result = columnObject[columnIndex]->getValuesInUInt32(page, &errorcode);
5468 if (result == NULL) {
5469 if (errorcode == 1) {
5470 setError((
char*)
"Warning: column value undefined (SDDSFile::getColumnInUInt32)");
5471 }
else if (errorcode == 2) {
5472 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getColumnInUInt32)");
5473 }
else if (errorcode == 3) {
5474 setError((
char*)
"Warning: invalid column type (SDDSFile::getColumnInUInt32)");
5477 return((uint32_t*)result);
5480uint32_t* SDDSFile::getColumnInUInt32(
char *name, uint32_t page) {
5483 int32_t columnIndex;
5484 char s[SDDS_MAXLINE];
5485 columnIndex = getColumnIndex(name);
5486 if (columnIndex < 0) {
5487 sprintf(s,
"Warning: column %s does not exist (SDDSFile::getColumnInUInt32)", name);
5489 return((uint32_t*)NULL);
5491 result = columnObject[columnIndex]->getValuesInUInt32(page, &errorcode);
5492 if (result == NULL) {
5493 if (errorcode == 1) {
5494 setError((
char*)
"Warning: column value undefined (SDDSFile::getColumnInUInt32)");
5495 }
else if (errorcode == 2) {
5496 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getColumnInUInt32)");
5497 }
else if (errorcode == 3) {
5498 setError((
char*)
"Warning: invalid column type (SDDSFile::getColumnInUInt32)");
5501 return((uint32_t*)result);
5504uint32_t* SDDSFile_getColumnInUInt32(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5510 if (mode&SDDSFILE_GETCOLUMN_WITH_INDEX) {
5511 index = va_arg(ap, int32_t);
5512 return(((SDDSFile*)sddsfile)->getColumnInUInt32(index, page));
5514 name = va_arg(ap,
char *);
5515 return(((SDDSFile*)sddsfile)->getColumnInUInt32(name, page));
5535double* SDDSFile::getColumnInDouble(int32_t columnIndex, uint32_t page) {
5538 char s[SDDS_MAXLINE];
5539 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
5540 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::getColumnInDouble)", columnIndex);
5542 return((
double*)NULL);
5544 result = columnObject[columnIndex]->getValuesInDouble(page, &errorcode);
5545 if (result == NULL) {
5546 if (errorcode == 1) {
5547 setError((
char*)
"Warning: column value undefined (SDDSFile::getColumnInDouble)");
5548 }
else if (errorcode == 2) {
5549 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getColumnInDouble)");
5550 }
else if (errorcode == 3) {
5551 setError((
char*)
"Warning: invalid column type (SDDSFile::getColumnInDouble)");
5554 return((
double*)result);
5557double* SDDSFile::getColumnInDouble(
char *name, uint32_t page) {
5560 int32_t columnIndex;
5561 char s[SDDS_MAXLINE];
5562 columnIndex = getColumnIndex(name);
5563 if (columnIndex < 0) {
5564 sprintf(s,
"Warning: column %s does not exist (SDDSFile::getColumnInDouble)", name);
5566 return((
double*)NULL);
5568 result = columnObject[columnIndex]->getValuesInDouble(page, &errorcode);
5569 if (result == NULL) {
5570 if (errorcode == 1) {
5571 setError((
char*)
"Warning: column value undefined (SDDSFile::getColumnInDouble)");
5572 }
else if (errorcode == 2) {
5573 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getColumnInDouble)");
5574 }
else if (errorcode == 3) {
5575 setError((
char*)
"Warning: invalid column type (SDDSFile::getColumnInDouble)");
5578 return((
double*)result);
5581double* SDDSFile_getColumnInDouble(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5587 if (mode&SDDSFILE_GETCOLUMN_WITH_INDEX) {
5588 index = va_arg(ap, int32_t);
5589 return(((SDDSFile*)sddsfile)->getColumnInDouble(index, page));
5591 name = va_arg(ap,
char *);
5592 return(((SDDSFile*)sddsfile)->getColumnInDouble(name, page));
5613char** SDDSFile::getColumnInString(int32_t columnIndex, uint32_t page) {
5616 char s[SDDS_MAXLINE];
5617 if ((columnIndex < 0) || (columnIndex >= columnCount)) {
5618 sprintf(s,
"Warning: column index %"PRId32
" does not exist (SDDSFile::getColumnInString)", columnIndex);
5620 return((
char**)NULL);
5622 result = columnObject[columnIndex]->getValuesInString(page, &errorcode);
5623 if (result == NULL) {
5624 if (errorcode == 1) {
5625 setError((
char*)
"Warning: column value undefined (SDDSFile::getColumnInString)");
5626 }
else if (errorcode == 2) {
5627 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getColumnInString)");
5628 }
else if (errorcode == 3) {
5629 setError((
char*)
"Warning: invalid column type (SDDSFile::getColumnInString)");
5632 return((
char**)result);
5635char** SDDSFile::getColumnInString(
char *name, uint32_t page) {
5638 int32_t columnIndex;
5639 char s[SDDS_MAXLINE];
5640 columnIndex = getColumnIndex(name);
5641 if (columnIndex < 0) {
5642 sprintf(s,
"Warning: column %s does not exist (SDDSFile::getColumnInString)", name);
5644 return((
char**)NULL);
5646 result = columnObject[columnIndex]->getValuesInString(page, &errorcode);
5647 if (result == NULL) {
5648 if (errorcode == 1) {
5649 setError((
char*)
"Warning: column value undefined (SDDSFile::getColumnInString)");
5650 }
else if (errorcode == 2) {
5651 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getColumnInString)");
5652 }
else if (errorcode == 3) {
5653 setError((
char*)
"Warning: invalid column type (SDDSFile::getColumnInString)");
5656 return((
char**)result);
5659char** SDDSFile_getColumnInString(
void *sddsfile, uint32_t page, int32_t mode, ...) {
5665 if (mode&SDDSFILE_GETCOLUMN_WITH_INDEX) {
5666 index = va_arg(ap, int32_t);
5667 return(((SDDSFile*)sddsfile)->getColumnInString(index, page));
5669 name = va_arg(ap,
char *);
5670 return(((SDDSFile*)sddsfile)->getColumnInString(name, page));
5688int32_t* SDDSFile::getParameterInInt32s(int32_t parameterIndex) {
5691 char s[SDDS_MAXLINE];
5692 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
5693 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::getParameterInInt32s)", parameterIndex);
5695 return((int32_t*)NULL);
5697 result = parameterObject[parameterIndex]->getValuesInInt32(&errorcode);
5698 if (result == NULL) {
5699 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInInt32s)", getParameterName(parameterIndex));
5701 if (errorcode == 1) {
5702 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInInt32s)");
5703 }
else if (errorcode == 2) {
5704 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInInt32s)");
5705 }
else if (errorcode == 3) {
5706 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInInt32s)");
5708 return((int32_t*)NULL);
5710 return((int32_t*)result);
5713int32_t* SDDSFile::getParameterInInt32s(
char* name) {
5716 int32_t parameterIndex;
5717 char s[SDDS_MAXLINE];
5718 parameterIndex = getParameterIndex(name);
5719 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
5720 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterInInt32s)", name);
5722 return((int32_t*)NULL);
5724 result = parameterObject[parameterIndex]->getValuesInInt32(&errorcode);
5725 if (result == NULL) {
5726 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInInt32s)", name);
5728 if (errorcode == 1) {
5729 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInInt32s)");
5730 }
else if (errorcode == 2) {
5731 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInInt32s)");
5732 }
else if (errorcode == 3) {
5733 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInInt32s)");
5735 return((int32_t*)NULL);
5737 return((int32_t*)result);
5740int32_t* SDDSFile_getParameterInInt32s(
void *sddsfile, int32_t mode, ...) {
5746 if (mode&SDDSFILE_GETPARAMETER_WITH_INDEX) {
5747 index = va_arg(ap, int32_t);
5748 return(((SDDSFile*)sddsfile)->getParameterInInt32s(index));
5750 name = va_arg(ap,
char *);
5751 return(((SDDSFile*)sddsfile)->getParameterInInt32s(name));
5769uint32_t* SDDSFile::getParameterInUInt32s(int32_t parameterIndex) {
5772 char s[SDDS_MAXLINE];
5773 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
5774 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::getParameterInUInt32s)", parameterIndex);
5776 return((uint32_t*)NULL);
5778 result = parameterObject[parameterIndex]->getValuesInUInt32(&errorcode);
5779 if (result == NULL) {
5780 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInUInt32s)", getParameterName(parameterIndex));
5782 if (errorcode == 1) {
5783 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInUInt32s)");
5784 }
else if (errorcode == 2) {
5785 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInUInt32s)");
5786 }
else if (errorcode == 3) {
5787 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInUInt32s)");
5789 return((uint32_t*)NULL);
5791 return((uint32_t*)result);
5794uint32_t* SDDSFile::getParameterInUInt32s(
char* name) {
5797 int32_t parameterIndex;
5798 char s[SDDS_MAXLINE];
5799 parameterIndex = getParameterIndex(name);
5800 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
5801 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterInUInt32s)", name);
5803 return((uint32_t*)NULL);
5805 result = parameterObject[parameterIndex]->getValuesInUInt32(&errorcode);
5806 if (result == NULL) {
5807 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInUInt32s)", name);
5809 if (errorcode == 1) {
5810 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInUInt32s)");
5811 }
else if (errorcode == 2) {
5812 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInUInt32s)");
5813 }
else if (errorcode == 3) {
5814 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInUInt32s)");
5816 return((uint32_t*)NULL);
5818 return((uint32_t*)result);
5821uint32_t* SDDSFile_getParameterInUInt32s(
void *sddsfile, int32_t mode, ...) {
5827 if (mode&SDDSFILE_GETPARAMETER_WITH_INDEX) {
5828 index = va_arg(ap, int32_t);
5829 return(((SDDSFile*)sddsfile)->getParameterInUInt32s(index));
5831 name = va_arg(ap,
char *);
5832 return(((SDDSFile*)sddsfile)->getParameterInUInt32s(name));
5850double* SDDSFile::getParameterInDoubles(int32_t parameterIndex) {
5853 char s[SDDS_MAXLINE];
5854 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
5855 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::getParameterInDoubles)", parameterIndex);
5857 return((
double*)NULL);
5859 result = parameterObject[parameterIndex]->getValuesInDouble(&errorcode);
5860 if (result == NULL) {
5861 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInDoubles)", getParameterName(parameterIndex));
5863 if (errorcode == 1) {
5864 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInDoubles)");
5865 }
else if (errorcode == 2) {
5866 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInDoubles)");
5867 }
else if (errorcode == 3) {
5868 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInDoubles)");
5870 return((
double*)NULL);
5872 return((
double*)result);
5875double* SDDSFile::getParameterInDoubles(
char* name) {
5878 int32_t parameterIndex;
5879 char s[SDDS_MAXLINE];
5880 parameterIndex = getParameterIndex(name);
5881 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
5882 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterInDoubles)", name);
5884 return((
double*)NULL);
5886 result = parameterObject[parameterIndex]->getValuesInDouble(&errorcode);
5887 if (result == NULL) {
5888 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInDoubles)", name);
5890 if (errorcode == 1) {
5891 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInDoubles)");
5892 }
else if (errorcode == 2) {
5893 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInDoubles)");
5894 }
else if (errorcode == 3) {
5895 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInDoubles)");
5897 return((
double*)NULL);
5899 return((
double*)result);
5902double* SDDSFile_getParameterInDoubles(
void *sddsfile, int32_t mode, ...) {
5908 if (mode&SDDSFILE_GETPARAMETER_WITH_INDEX) {
5909 index = va_arg(ap, int32_t);
5910 return(((SDDSFile*)sddsfile)->getParameterInDoubles(index));
5912 name = va_arg(ap,
char *);
5913 return(((SDDSFile*)sddsfile)->getParameterInDoubles(name));
5931char** SDDSFile::getParameterInStrings(int32_t parameterIndex) {
5934 char s[SDDS_MAXLINE];
5935 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
5936 sprintf(s,
"Warning: parameter index %"PRId32
" does not exist (SDDSFile::getParameterInStrings)", parameterIndex);
5938 return((
char**)NULL);
5940 result = parameterObject[parameterIndex]->getValuesInString(&errorcode);
5941 if (result == NULL) {
5942 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInStrings)", getParameterName(parameterIndex));
5944 if (errorcode == 1) {
5945 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInStrings)");
5946 }
else if (errorcode == 2) {
5947 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInStrings)");
5948 }
else if (errorcode == 3) {
5949 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInStrings)");
5951 return((
char**)NULL);
5953 return((
char**)result);
5956char** SDDSFile::getParameterInStrings(
char* name) {
5959 int32_t parameterIndex;
5960 char s[SDDS_MAXLINE];
5961 parameterIndex = getParameterIndex(name);
5962 if ((parameterIndex < 0) || (parameterIndex >= parameterCount)) {
5963 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::getParameterInStrings)", name);
5965 return((
char**)NULL);
5967 result = parameterObject[parameterIndex]->getValuesInString(&errorcode);
5968 if (result == NULL) {
5969 sprintf(s,
"Warning: unable to get parameter value for %s (SDDSFile::getParameterInStrings)", name);
5971 if (errorcode == 1) {
5972 setError((
char*)
"Warning: parameter value undefined (SDDSFile::getParameterInStrings)");
5973 }
else if (errorcode == 2) {
5974 setError((
char*)
"Warning: unable to convert value to proper type (SDDSFile::getParameterInStrings)");
5975 }
else if (errorcode == 3) {
5976 setError((
char*)
"Warning: invalid parameter type (SDDSFile::getParameterInStrings)");
5978 return((
char**)NULL);
5980 return((
char**)result);
5983char** SDDSFile_getParameterInStrings(
void *sddsfile, int32_t mode, ...) {
5989 if (mode&SDDSFILE_GETPARAMETER_WITH_INDEX) {
5990 index = va_arg(ap, int32_t);
5991 return(((SDDSFile*)sddsfile)->getParameterInStrings(index));
5993 name = va_arg(ap,
char *);
5994 return(((SDDSFile*)sddsfile)->getParameterInStrings(name));
6007void SDDSFile::setError(
char *error_text) {
6008 if (error_text != NULL) {
6010 error_description = (
char**)SDDS_realloc(error_description,
sizeof(
char*) * n_errors);
6011 if (error_text == NULL)
6012 error_description[n_errors - 1] = NULL;
6014 error_description[n_errors - 1] = (
char*)SDDS_malloc(
sizeof(
char) * strlen(error_text) + 1);
6015 strcpy(error_description[n_errors - 1], error_text);
6019void SDDSFile_setError(
void *sddsfile,
char *error_text) {
6020 ((SDDSFile*)sddsfile)->setError(error_text);
6036void SDDSFile::printErrors(FILE *fpointer, int32_t mode) {
6038 char *registeredProgramName;
6039 if (n_errors == 0) {
6042 if (fpointer == NULL) {
6046 registeredProgramName = SDDS_getProgramName();
6047 if (registeredProgramName) {
6048 fprintf(fpointer,
"Error for %s:\n", registeredProgramName);
6050 fputs(
"Error:\n", fpointer);
6052 if (error_description) {
6053 for (i=0; i<n_errors; i++) {
6054 if (error_description[i] != NULL) {
6055 fprintf(fpointer,
"%s\n", error_description[i]);
6057 fprintf(stderr,
"warning: internal error: error_description[%" PRId32
"] pointer is unexpectedly NULL\n", i);
6061 fprintf(stderr,
"warning: internal error: error_description pointer is unexpectedly NULL\n");
6065 if (mode&SDDS_EXIT_PrintErrors) {
6069void SDDSFile::printErrors() {
6071 char *registeredProgramName;
6072 if (n_errors == 0) {
6075 registeredProgramName = SDDS_getProgramName();
6076 if (registeredProgramName) {
6077 fprintf(stderr,
"Error for %s:\n", registeredProgramName);
6079 fputs(
"Error:\n", stderr);
6081 if (error_description) {
6082 for (i=0; i<n_errors; i++) {
6083 if (error_description[i] != NULL) {
6084 fprintf(stderr,
"%s\n", error_description[i]);
6088 fprintf(stderr,
"warning: internal error: error_description pointer is unexpectedly NULL\n");
6092void SDDSFile_printErrors(
void *sddsfile) {
6093 ((SDDSFile*)sddsfile)->printErrors();
6105int32_t SDDSFile::checkForErrors() {
6108int32_t SDDSFile_checkForErrors(
void *sddsfile) {
6109 return(((SDDSFile*)sddsfile)->checkForErrors());
6121void SDDSFile::clearErrors() {
6125 if (error_description) {
6126 for (i=0; i<n_errors; i++) {
6127 if (error_description[i] != NULL) {
6128 SDDS_free(error_description[i]);
6131 SDDS_free(error_description);
6132 error_description = NULL;
6136void SDDSFile_clearErrors(
void *sddsfile) {
6137 ((SDDSFile*)sddsfile)->clearErrors();
6150int32_t SDDSFile::readFile() {
6151 if (openInputFile()) {
6165int32_t SDDSFile_readFile(
void *sddsfile) {
6166 return(((SDDSFile*)sddsfile)->readFile());
6179int32_t SDDSFile::initializeInput(
char *filename) {
6180 setFileName(filename);
6181 if (openInputFile()) {
6189int32_t SDDSFile_initializeInput(
void *sddsfile,
char *filename) {
6190 return(((SDDSFile*)sddsfile)->initializeInput(filename));
6203int32_t SDDSFile::initializeOutput(int32_t data_mode, int32_t lines_per_row,
6204 char *description,
char *contents,
char *filename) {
6205 setFileName(filename);
6206 if (data_mode == SDDS_BINARY) {
6211 linesPerRow = lines_per_row;
6212 setDescription(description, contents);
6213 if (openOutputFile()) {
6218int32_t SDDSFile_initializeOutput(
void *sddsfile, int32_t data_mode, int32_t lines_per_row,
6219 char *description,
char *contents,
char *filename) {
6220 return(((SDDSFile*)sddsfile)->initializeOutput(data_mode, lines_per_row, description, contents, filename));
6233int32_t SDDSFile::writeFile() {
6234 if (openOutputFile()) {
6237 if (writeLayout()) {
6248int32_t SDDSFile_writeFile(
void *sddsfile) {
6249 return(((SDDSFile*)sddsfile)->writeFile());
6262int32_t SDDSFile::openInputFile() {
6263 char s[SDDS_MAXLINE];
6267 if (fileName == NULL) {
6269 if (_setmode(_fileno(stdin), _O_BINARY) == -1) {
6270 setError((
char*)
"unable to set stdin to binary mode");
6276 if (!(fp=fopen(fileName,
"rb"))) {
6277 sprintf(s,
"Unable to open file %s for reading (SDDSFile::openInputFile)", fileName);
6283 if ((extension = strrchr(fileName,
'.')) && strcmp(extension,
".gz")==0) {
6285 gzfp=(
void**)gzdopen(fileno(fp),
"rb");
6287 sprintf(s,
"Unable to open compressed file %s for reading (SDDSFile::openInputFile)", fileName);
6296int32_t SDDSFile_openInputFile(
void *sddsfile) {
6297 return(((SDDSFile*)sddsfile)->openInputFile());
6310int32_t SDDSFile::openOutputFile() {
6311 char s[SDDS_MAXLINE];
6315 if (fileName == NULL) {
6317 if (_setmode(_fileno(stdout), _O_BINARY) == -1) {
6318 setError((
char*)
"unable to set stdout to binary mode");
6324 if (SDDS_fileIsLocked(fileName)) {
6325 sprintf(s,
"unable to open file %s for writing--file is locked (SDDSFile::openOutputFile)", fileName);
6329 if (!(fp=fopen(fileName,
"wb"))) {
6330 sprintf(s,
"Unable to open file %s for writing (SDDSFile::openOutputFile)", fileName);
6334 if (!SDDS_lockFile(fp, fileName, (
char*)
"SDDSFile::openOutputFile"))
6337 if ((extension = strrchr(fileName,
'.')) && strcmp(extension,
".gz")==0) {
6339 gzfp=(
void**)gzdopen(fileno(fp),
"wb");
6341 sprintf(s,
"Unable to open compressed file %s for writing (SDDSFile::openOutputFile)", fileName);
6350int32_t SDDSFile_openOutputFile(
void *sddsfile) {
6351 return(((SDDSFile*)sddsfile)->openOutputFile());
6364int32_t SDDSFile::readLayout() {
6365 char s[SDDS_MAXLINE];
6366 char *groupName, *ptr;
6368 uint32_t commentFlags;
6372 setError((
char*)
"Can't read SDDS layout--file pointer is NULL (SDDSFile::readLayout)");
6378 setError((
char*)
"Can't read SDDS layout--file pointer is NULL (SDDSFile::readLayout)");
6384 if (readVersion()) {
6385 setError((
char*)
"Can't read SDDS layout--error writing version (SDDSFile::readLayout)");
6388 if ((layoutVersion < 1) || (layoutVersion > SDDS_VERSION)) {
6389 sprintf(s,
"Unable to read SDDS version %"PRId32
" files", layoutVersion);
6393 SDDS_resetSpecialCommentsModes();
6396 result = SDDS_getNamelist(s, SDDS_MAXLINE, gzfp);
6399 result = SDDS_getNamelist(s, SDDS_MAXLINE, fp);
6405 if ((ptr=strpbrk(s,
" \t")) == NULL) {
6406 setError((
char*)
"Unable to read layout---no groupname in namelist (SDDSFile::readLayout)");
6410 if (strcmp(groupName, (
char*)
"description") == 0) {
6411 if (processDescription(ptr+1)) {
6412 setError((
char*)
"Unable to process description (SDDSFile::readLayout)");
6415 }
else if (strcmp(groupName, (
char*)
"array") == 0) {
6416 if (processArray(ptr+1)) {
6417 setError((
char*)
"Unable to process array (SDDSFile::readLayout)");
6420 }
else if (strcmp(groupName, (
char*)
"column") == 0) {
6421 if (processColumn(ptr+1)) {
6422 setError((
char*)
"Unable to process column (SDDSFile::readLayout)");
6425 }
else if (strcmp(groupName, (
char*)
"parameter") == 0) {
6426 if (processParameter(ptr+1)) {
6427 setError((
char*)
"Unable to process parameter (SDDSFile::readLayout)");
6430 }
else if (strcmp(groupName, (
char*)
"data") == 0) {
6431 if (processData(ptr+1)) {
6432 setError((
char*)
"Unable to process parameter (SDDSFile::readLayout)");
6435 commentFlags = SDDS_getSpecialCommentsModes();
6436 if ((commentFlags&SDDS_BIGENDIAN_SEEN) && (commentFlags&SDDS_LITTLEENDIAN_SEEN)) {
6437 setError((
char*)
"Unable to read data as it says it is both big and little endian (SDDSFile::readLayout)");
6440 if (commentFlags&SDDS_BIGENDIAN_SEEN) {
6443 if (commentFlags&SDDS_LITTLEENDIAN_SEEN) {
6448 for (i=0; i<additionalHeaderLines; i++) {
6449 if (SDDS_fgetsSkipComments(s, SDDS_MAXLINE, gzfp,
'!') == NULL) {
6450 setError((
char*)
"Unexpected end-of-file while skipping past additional header lines (SDDSFile::readLayout)");
6456 for (i=0; i<additionalHeaderLines; i++) {
6457 if (SDDS_fgetsSkipComments(s, SDDS_MAXLINE, fp,
'!') == NULL) {
6458 setError((
char*)
"Unexpected end-of-file while skipping past additional header lines (SDDSFile::readLayout)");
6466 }
else if (strcmp(groupName, (
char*)
"associate") == 0) {
6467 fprintf(stderr,
"ASSOCIATE\n");
6468 }
else if (strcmp(groupName, (
char*)
"include") == 0) {
6469 fprintf(stderr,
"INCLUDE\n");
6471 sprintf(s,
"Unknown layout entry %s given (SDDSFile::readLayout)", groupName);
6477 result = SDDS_getNamelist(s, SDDS_MAXLINE, gzfp);
6480 result = SDDS_getNamelist(s, SDDS_MAXLINE, fp);
6485 sprintf(s,
"Missing data layout entry (SDDSFile::readLayout)");
6489int32_t SDDSFile_readLayout(
void *sddsfile) {
6490 return(((SDDSFile*)sddsfile)->readLayout());
6503int32_t SDDSFile::writeLayout() {
6504 char *outputEndianess = NULL;
6505 if ((outputEndianess = getenv(
"SDDS_OUTPUT_ENDIANESS"))) {
6506 if (strncmp(outputEndianess,
"big", 3) == 0) {
6508 }
else if (strncmp(outputEndianess,
"little", 6) == 0) {
6515 setError((
char*)
"Can't write SDDS layout--file pointer is NULL (SDDSFile::writeLayout)");
6521 setError((
char*)
"Can't write SDDS layout--file pointer is NULL (SDDSFile::writeLayout)");
6527 if (writeVersion(layoutVersion)) {
6528 setError((
char*)
"Can't write SDDS layout--error writing version (SDDSFile::writeLayout)");
6531 if (writeDescription()) {
6532 setError((
char*)
"Can't write SDDS layout--error writing description (SDDSFile::writeLayout)");
6535 if (writeParameterDefinitions()) {
6536 setError((
char*)
"Unable to write layout--error writing parameter definitions (SDDSFile::writeLayout)");
6539 if (writeArrayDefinitions()) {
6540 setError((
char*)
"Unable to write layout--error writing array definitions (SDDSFile::writeLayout)");
6543 if (writeColumnDefinitions()) {
6544 setError((
char*)
"Unable to write layout--error writing column definitions (SDDSFile::writeLayout)");
6547 if (writeDataMode()) {
6548 setError((
char*)
"Unable to write layout--error writing data mode (SDDSFile::writeLayout)");
6560int32_t SDDSFile_writeLayout(
void *sddsfile) {
6561 return(((SDDSFile*)sddsfile)->writeLayout());
6572int32_t SDDSFile::readVersion() {
6573 char s[SDDS_MAXLINE];
6579 if (!gzgets(gzfp, s, SDDS_MAXLINE)) {
6580 setError((
char*)
"Unable to read layout--no header lines found (SDDSFile::readVersion)");
6588 if (!fgets(s, SDDS_MAXLINE, fp)) {
6589 setError((
char*)
"Unable to read layout--no header lines found (SDDSFile::readVersion)");
6595 if (strncmp(s,
"SDDS", 4)!=0) {
6596 setError((
char*)
"Unable to read layout--no header lines found (SDDSFile::readVersion)");
6599 if (sscanf(s+4,
"%" SCNd32, &layoutVersion)!=1) {
6600 setError((
char*)
"Unable to read layout--no version number on first line (SDDSFile::readVersion)");
6613int32_t SDDSFile::writeVersion(int32_t version_number) {
6619 gzprintf(gzfp,
"SDDS%" PRId32
"\n", version_number);
6625 fprintf(fp,
"SDDS%" PRId32
"\n", version_number);
6640int32_t SDDSFile::writeDescription() {
6641 if ((descriptionText == NULL) && (descriptionContents == NULL)) {
6649 gzputs(gzfp,
"&description ");
6650 if (descriptionText != NULL) {
6651 if (SDDS_printNamelistField(gzfp, (
char*)
"text", descriptionText)) {
6655 if (descriptionContents != NULL) {
6656 if (SDDS_printNamelistField(gzfp, (
char*)
"contents", descriptionContents)) {
6660 gzputs(gzfp,
"&end\n");
6666 fputs(
"&description ", fp);
6667 if (descriptionText != NULL) {
6668 if (SDDS_printNamelistField(fp, (
char*)
"text", descriptionText)) {
6672 if (descriptionContents != NULL) {
6673 if (SDDS_printNamelistField(fp, (
char*)
"contents", descriptionContents)) {
6677 fputs(
"&end\n", fp);
6692int32_t SDDSFile::writeArrayDefinitions() {
6694 for (i=0; i<arrayCount; i++) {
6695 if (writeArrayDefinition(i)) {
6696 setError((
char*)
"Error writing array definitions (SDDSFile::writeArrayDefinitions)");
6711int32_t SDDSFile::writeArrayDefinition(int32_t arrayIndex) {
6714 if (arrayObject[arrayIndex]->writeDefinition(gzfp)) {
6715 setError((
char*)
"Error writing array definition (SDDSFile::writeArrayDefinition)");
6720 if (arrayObject[arrayIndex]->writeDefinition(fp)) {
6721 setError((
char*)
"Error writing array definition (SDDSFile::writeArrayDefinition)");
6738int32_t SDDSFile::writeColumnDefinitions() {
6740 for (i=0; i<columnCount; i++) {
6741 if (writeColumnDefinition(i)) {
6742 setError((
char*)
"Error writing column definitions (SDDSFile::writeColumnDefinitions)");
6757int32_t SDDSFile::writeColumnDefinition(int32_t columnIndex) {
6760 if (columnObject[columnIndex]->writeDefinition(gzfp)) {
6761 setError((
char*)
"Error writing column definition (SDDSFile::writeColumnDefinition)");
6766 if (columnObject[columnIndex]->writeDefinition(fp)) {
6767 setError((
char*)
"Error writing column definition (SDDSFile::writeColumnDefinition)");
6784int32_t SDDSFile::writeParameterDefinitions() {
6786 for (i=0; i<parameterCount; i++) {
6787 if (writeParameterDefinition(i)) {
6788 setError((
char*)
"Error writing parameter definitions (SDDSFile::writeParameterDefinitions)");
6803int32_t SDDSFile::writeParameterDefinition(int32_t parameterIndex) {
6806 if (parameterObject[parameterIndex]->writeDefinition(gzfp)) {
6807 setError((
char*)
"Error writing parameter definition (SDDSFile::writeParameterDefinition)");
6812 if (parameterObject[parameterIndex]->writeDefinition(fp)) {
6813 setError((
char*)
"Error writing parameter definition (SDDSFile::writeParameterDefinition)");
6830int32_t SDDSFile::writeDataMode() {
6836 gzputs(gzfp,
"&data ");
6838 if (SDDS_printNamelistField(gzfp, (
char*)
"mode", (
char*)
"ascii")) {
6842 if (layoutVersion >= 3) {
6843 if (SDDS_printNamelistField(gzfp, (
char*)
"no_row_counts", (
char*)
"true")) {
6847 if (SDDS_printNamelistField(gzfp, (
char*)
"no_row_counts", (
char*)
"1")) {
6853 if (SDDS_printNamelistField(gzfp, (
char*)
"mode", (
char*)
"binary")) {
6856 if (layoutVersion >= 3) {
6858 if (SDDS_printNamelistField(gzfp, (
char*)
"endian", (
char*)
"big")) {
6862 if (SDDS_printNamelistField(gzfp, (
char*)
"endian", (
char*)
"little")) {
6867 if (columnMajorOrder && (layoutVersion >= 3)) {
6868 if (SDDS_printNamelistField(gzfp, (
char*)
"column_major_order", (
char*)
"true")) {
6874 gzputs(gzfp,
"&end\n");
6880 fputs(
"&data ", fp);
6882 if (SDDS_printNamelistField(fp, (
char*)
"mode", (
char*)
"ascii")) {
6886 if (layoutVersion >= 3) {
6887 if (SDDS_printNamelistField(fp, (
char*)
"no_row_counts", (
char*)
"true")) {
6891 if (SDDS_printNamelistField(fp, (
char*)
"no_row_counts", (
char*)
"1")) {
6897 if (SDDS_printNamelistField(fp, (
char*)
"mode", (
char*)
"binary")) {
6900 if (layoutVersion >= 3) {
6902 if (SDDS_printNamelistField(fp, (
char*)
"endian", (
char*)
"big")) {
6906 if (SDDS_printNamelistField(fp, (
char*)
"endian", (
char*)
"little")) {
6911 if (columnMajorOrder && (layoutVersion >= 3)) {
6912 if (SDDS_printNamelistField(fp, (
char*)
"column_major_order", (
char*)
"true")) {
6917 fputs(
"&end\n", fp);
6935int32_t SDDSFile::writePages() {
6936 return(writePages(1, pageCount()));
6938int32_t SDDSFile::writePages(uint32_t startPage, uint32_t endPage) {
6940 for (i = startPage; i <= endPage ; i++) {
6947int32_t SDDSFile_writePages(
void *sddsfile) {
6948 return(((SDDSFile*)sddsfile)->writePages());
6961int32_t SDDSFile::writePage(uint32_t page) {
6963 return(writeAsciiPage(page));
6965 return(writeBinaryPage(page));
6968int32_t SDDSFile_writePage(
void *sddsfile, uint32_t page) {
6969 return(((SDDSFile*)sddsfile)->writePage(page));
6982int32_t SDDSFile::readPages() {
6984 return(readAsciiPages());
6986 return(readBinaryPages());
6989int32_t SDDSFile_readPages(
void *sddsfile) {
6990 return(((SDDSFile*)sddsfile)->readPages());
7003int32_t SDDSFile::readPage() {
7006 return(readAsciiPage());
7008 return(readBinaryPage());
7011int32_t SDDSFile_readPage(
void *sddsfile) {
7012 return(((SDDSFile*)sddsfile)->readPage());
7026void SDDSFile::freePage() {
7028 for (i=0 ; i<arrayCount ; i++) {
7029 arrayObject[i]->freePage();
7031 for (i=0 ; i<parameterCount ; i++) {
7032 parameterObject[i]->freePage();
7034 for (i=0 ; i<columnCount ; i++) {
7035 columnObject[i]->freePage();
7038void SDDSFile_freePage(
void *sddsfile) {
7039 ((SDDSFile*)sddsfile)->freePage();
7050int32_t SDDSFile::writeAsciiPage(uint32_t page) {
7051 char s[SDDS_MAXLINE];
7054 rows = rowCount(page);
7060 if ((noRowCount) && (page > 1) && (columnCount > 0)) {
7063 gzprintf(gzfp,
"! page number %" PRIu32
"\n", page);
7064 for (i=0 ; i<parameterCount ; i++) {
7065 if (parameterObject[i]->writeAsciiValue(gzfp, page)) {
7066 sprintf(s,
"invalid page number (%" PRId32
") for parameter %s (SDDSFile::writeAsciiPage)", page, parameterObject[i]->getName());
7071 for (i=0 ; i<arrayCount ; i++) {
7072 if (arrayObject[i]->writeAsciiValues(gzfp, page)) {
7073 sprintf(s,
"invalid page number (%" PRId32
") for array %s (SDDSFile::writeAsciiPage)", page, arrayObject[i]->getName());
7078 if ((!noRowCount) && (columnCount > 0)) {
7079 gzprintf(gzfp,
"\t%" PRIu32
"\n", rows);
7082 for (j=1; j<=rows; j++) {
7083 for (i=0 ; i<columnCount ; i++) {
7084 if (columnObject[i]->writeAsciiValue(gzfp, page, j)) {
7085 sprintf(s,
"invalid page or row number for column %s (SDDSFile::writeAsciiPage)", columnObject[i]->getName());
7098 if ((noRowCount) && (page > 1) && (columnCount > 0)) {
7101 fprintf(fp,
"! page number %" PRIu32
"\n", page);
7102 for (i=0 ; i<parameterCount ; i++) {
7103 if (parameterObject[i]->writeAsciiValue(fp, page)) {
7104 sprintf(s,
"invalid page number (%" PRId32
") for parameter %s (SDDSFile::writeAsciiPage)", page, parameterObject[i]->getName());
7109 for (i=0 ; i<arrayCount ; i++) {
7110 if (arrayObject[i]->writeAsciiValues(fp, page)) {
7111 sprintf(s,
"invalid page number (%" PRId32
") for array %s (SDDSFile::writeAsciiPage)", page, arrayObject[i]->getName());
7116 if ((!noRowCount) && (columnCount > 0)) {
7117 fprintf(fp,
"\t%" PRIu32
"\n", rows);
7120 for (j=1; j<=rows; j++) {
7121 for (i=0 ; i<columnCount ; i++) {
7122 if (columnObject[i]->writeAsciiValue(fp, page, j)) {
7123 sprintf(s,
"invalid page or row number for column %s (SDDSFile::writeAsciiPage)", columnObject[i]->getName());
7146int32_t SDDSFile::writeBinaryPage(uint32_t page) {
7150 bool big, nonNativeEndian;
7151 big = SDDS_isBigEndianMachine();
7153 if (bigEndian ==
true) {
7154 nonNativeEndian =
false;
7156 nonNativeEndian =
true;
7159 if (bigEndian ==
true) {
7160 nonNativeEndian =
true;
7162 nonNativeEndian =
false;
7165 if ((fBuffer.buffer = fBuffer.data = (
char*)SDDS_malloc(
sizeof(
char)*(defaultIOBufferSize+1))) == NULL) {
7166 setError((
char*)
"Unable to do buffered write--allocation error (SDDSFile::writeBinaryPage)");
7169 fBuffer.bufferSize = defaultIOBufferSize;
7170 fBuffer.bytesLeft = defaultIOBufferSize;
7172 rows = rowCount(page);
7176 setError((
char*)
"Invalid file pointer (SDDSFile::writeBinaryPages)");
7179 if (SDDS_bufferedWrite(&rows,
sizeof(rows), gzfp, &fBuffer,
this)) {
7180 setError((
char*)
"Unable to write page--failure writing number of rows (SDDSFile::writeBinaryPage)");
7183 for (i=0 ; i<parameterCount ; i++) {
7184 if (parameterObject[i]->writeBinaryValue(gzfp, &fBuffer, page, nonNativeEndian)) {
7185 setError((
char*)
"Unable to write page--failure writing parameter (SDDSFile::writeBinaryPage)");
7189 for (i=0 ; i<arrayCount ; i++) {
7190 if (arrayObject[i]->writeBinaryValues(gzfp, &fBuffer, page, nonNativeEndian)) {
7191 setError((
char*)
"Unable to write page--failure writing array (SDDSFile::writeBinaryPage)");
7195 if (columnCount > 0) {
7197 if (columnMajorOrder && (layoutVersion >= 3)) {
7199 for (i=0 ; i<columnCount ; i++) {
7200 if (columnObject[i]->writeBinaryValues(gzfp, &fBuffer, page, nonNativeEndian)) {
7201 setError((
char*)
"Unable to write page--failure writing column (SDDSFile::writeBinaryPage)");
7207 for (j=0; j<rows; j++) {
7208 for (i=0 ; i<columnCount ; i++) {
7209 if (columnObject[i]->writeBinaryValue(gzfp, &fBuffer, page, j, nonNativeEndian)) {
7210 setError((
char*)
"Unable to write page--failure writing column (SDDSFile::writeBinaryPage)");
7218 if (SDDS_flushBuffer(gzfp, &fBuffer,
this)) {
7219 setError((
char*)
"Unable to write page--buffer flushing problem (SDDSFile::writeBinaryPage)");
7225 setError((
char*)
"Invalid file pointer (SDDSFile::writeBinaryPages)");
7228 if (SDDS_bufferedWrite(&rows,
sizeof(rows), fp, &fBuffer,
this)) {
7229 setError((
char*)
"Unable to write page--failure writing number of rows (SDDSFile::writeBinaryPage)");
7232 for (i=0 ; i<parameterCount ; i++) {
7233 if (parameterObject[i]->writeBinaryValue(fp, &fBuffer, page, nonNativeEndian)) {
7234 setError((
char*)
"Unable to write page--failure writing parameter (SDDSFile::writeBinaryPage)");
7238 for (i=0 ; i<arrayCount ; i++) {
7239 if (arrayObject[i]->writeBinaryValues(fp, &fBuffer, page, nonNativeEndian)) {
7240 setError((
char*)
"Unable to write page--failure writing array (SDDSFile::writeBinaryPage)");
7244 if (columnCount > 0) {
7246 if (columnMajorOrder && (layoutVersion >= 3)) {
7248 for (i=0 ; i<columnCount ; i++) {
7249 if (columnObject[i]->writeBinaryValues(fp, &fBuffer, page, nonNativeEndian)) {
7250 setError((
char*)
"Unable to write page--failure writing column (SDDSFile::writeBinaryPage)");
7256 for (j=0; j<rows; j++) {
7257 for (i=0 ; i<columnCount ; i++) {
7258 if (columnObject[i]->writeBinaryValue(fp, &fBuffer, page, j, nonNativeEndian)) {
7259 setError((
char*)
"Unable to write page--failure writing column (SDDSFile::writeBinaryPage)");
7267 if (SDDS_flushBuffer(fp, &fBuffer,
this)) {
7268 setError((
char*)
"Unable to write page--buffer flushing problem (SDDSFile::writeBinaryPage)");
7274 SDDS_free(fBuffer.buffer);
7345int32_t SDDSFile::readAsciiPages() {
7348 bool asciiDataExpected=
false, first_read;
7349 static char *bigBuffer=NULL;
7350 static int32_t bigBufferSize=0;
7351 char *bigBufferCopy;
7352 int32_t bigBufferCopySize;
7353 int32_t lines, columnIndex;
7358 setError((
char*)
"Invalid file pointer (SDDSFile::readAsciiPages)");
7364 setError((
char*)
"Invalid file pointer (SDDSFile::readAsciiPages)");
7370 setReadRecoveryMode(0);
7371 for (i=0; i<parameterCount; i++) {
7372 if (getParameterFixedValue(i) == NULL) {
7373 asciiDataExpected =
true;
7377 if ((columnCount > 0) || (arrayCount > 0)) {
7378 asciiDataExpected =
true;
7380 if (!asciiDataExpected) {
7383 if (bigBufferSize == 0) {
7384 bigBufferSize = SDDS_MAXLINE;
7385 bigBuffer = (
char*)SDDS_malloc(
sizeof(
char) * bigBufferSize);
7393 setError((
char*)
"No data in file (SDDSFile::readAsciiPages)");
7403 setError((
char*)
"No data in file (SDDSFile::readAsciiPages)");
7412 for (i=0; i<parameterCount; i++) {
7414 if (getParameterFixedValue(i) == NULL) {
7417 if (SDDS_fgetsSkipCommentsResize(&bigBuffer, &bigBufferSize, gzfp,
'!') == NULL) {
7421 setError((
char*)
"Unable to read parameter values (SDDSFile::readAsciiPages)");
7426 if (SDDS_fgetsSkipCommentsResize(&bigBuffer, &bigBufferSize, fp,
'!') == NULL) {
7430 setError((
char*)
"Unable to read parameter values (SDDSFile::readAsciiPages)");
7437 bigBufferCopy = bigBuffer;
7438 bigBufferCopySize = strlen(bigBufferCopy);
7439 if (parameterObject[i]->readAsciiValue(&bigBufferCopy, &bigBufferCopySize, page)) {
7440 setError((
char*)
"Unable to read parameter (SDDSFile::readAsciiPages)");
7445 for (i=0; i<arrayCount; i++) {
7449 if (columnCount > 0) {
7451 if (noRowCount ==
false) {
7454 if (SDDS_fgetsSkipComments(bigBuffer, bigBufferSize, gzfp,
'!') == NULL) {
7458 setError((
char*)
"Unable to read row count (SDDSFile::readAsciiPages)");
7463 if (SDDS_fgetsSkipComments(bigBuffer, bigBufferSize, fp,
'!') == NULL) {
7467 setError((
char*)
"Unable to read row count (SDDSFile::readAsciiPages)");
7474 if (sscanf(bigBuffer,
"%" SCNu32, &n_rows)!=1 || n_rows<0) {
7475 setError((
char*)
"Unable to read page--file has no (valid) number-of-rows entry (SDDSFile::readAsciiPages)");
7486 while ((j<n_rows) || noRowCount) {
7490 if (SDDS_fgetsSkipCommentsResize(&bigBuffer, &bigBufferSize, gzfp,
'!') == NULL) {
7494 setError((
char*)
"Unable to read column values (SDDSFile::readAsciiPages)");
7495 setReadRecoveryMode(1);
7500 if (SDDS_fgetsSkipCommentsResize(&bigBuffer, &bigBufferSize, fp,
'!') == NULL) {
7504 setError((
char*)
"Unable to read column values (SDDSFile::readAsciiPages)");
7505 setReadRecoveryMode(1);
7511 if ((noRowCount) && (SDDS_stringIsBlank(bigBuffer))) {
7514 bigBufferCopy = bigBuffer;
7515 bigBufferCopySize = strlen(bigBufferCopy);
7516 for (i=columnIndex; i<columnCount; i++) {
7517 if (columnObject[i]->readAsciiValue(&bigBufferCopy, &bigBufferCopySize, page)) {
7518 setError((
char*)
"Unable to read column (SDDSFile::readAsciiPages)");
7519 setReadRecoveryMode(1);
7522 if ((i+1 != columnCount) && (SDDS_stringIsBlank(bigBufferCopy))) {
7529 setError((
char*)
"Warning: missing element in row (SDDSFile::readAsciiPages)");
7530 setReadRecoveryMode(1);
7533 }
else if (linesPerRow > 1) {
7555uint32_t SDDSFile::readAsciiPage() {
7556 static uint32_t page=1;
7558 bool asciiDataExpected=
false, first_read;
7559 static char *bigBuffer=NULL;
7560 static int32_t bigBufferSize=0;
7561 char *bigBufferCopy;
7562 int32_t bigBufferCopySize;
7563 int32_t lines, columnIndex;
7568 setError((
char*)
"Invalid file pointer (SDDSFile::readAsciiPage)");
7574 setError((
char*)
"Invalid file pointer (SDDSFile::readAsciiPage)");
7580 setReadRecoveryMode(0);
7581 for (i=0; i<parameterCount; i++) {
7582 if (getParameterFixedValue(i) == NULL) {
7583 asciiDataExpected =
true;
7587 if ((columnCount > 0) || (arrayCount > 0)) {
7588 asciiDataExpected =
true;
7590 if (!asciiDataExpected) {
7593 if (bigBufferSize == 0) {
7594 bigBufferSize = SDDS_MAXLINE;
7595 bigBuffer = (
char*)SDDS_malloc(
sizeof(
char) * bigBufferSize);
7603 setError((
char*)
"No data in file (SDDSFile::readAsciiPage)");
7613 setError((
char*)
"No data in file (SDDSFile::readAsciiPage)");
7622 for (i=0; i<parameterCount; i++) {
7624 if (getParameterFixedValue(i) == NULL) {
7627 if (SDDS_fgetsSkipCommentsResize(&bigBuffer, &bigBufferSize, gzfp,
'!') == NULL) {
7631 setError((
char*)
"Unable to read parameter values (SDDSFile::readAsciiPage)");
7636 if (SDDS_fgetsSkipCommentsResize(&bigBuffer, &bigBufferSize, fp,
'!') == NULL) {
7640 setError((
char*)
"Unable to read parameter values (SDDSFile::readAsciiPage)");
7647 bigBufferCopy = bigBuffer;
7648 bigBufferCopySize = strlen(bigBufferCopy);
7649 if (parameterObject[i]->readAsciiValue(&bigBufferCopy, &bigBufferCopySize, 1)) {
7650 setError((
char*)
"Unable to read parameter (SDDSFile::readAsciiPage)");
7655 for (i=0; i<arrayCount; i++) {
7659 if (columnCount > 0) {
7661 if (noRowCount ==
false) {
7664 if (SDDS_fgetsSkipComments(bigBuffer, bigBufferSize, gzfp,
'!') == NULL) {
7668 setError((
char*)
"Unable to read row count (SDDSFile::readAsciiPage)");
7673 if (SDDS_fgetsSkipComments(bigBuffer, bigBufferSize, fp,
'!') == NULL) {
7677 setError((
char*)
"Unable to read row count (SDDSFile::readAsciiPage)");
7684 if (sscanf(bigBuffer,
"%" SCNu32, &n_rows)!=1 || n_rows<0) {
7685 setError((
char*)
"Unable to read page--file has no (valid) number-of-rows entry (SDDSFile::readAsciiPage)");
7696 while ((j<n_rows) || noRowCount) {
7700 if (SDDS_fgetsSkipCommentsResize(&bigBuffer, &bigBufferSize, gzfp,
'!') == NULL) {
7705 setError((
char*)
"Unable to read column values (SDDSFile::readAsciiPage)");
7706 setReadRecoveryMode(1);
7711 if (SDDS_fgetsSkipCommentsResize(&bigBuffer, &bigBufferSize, fp,
'!') == NULL) {
7716 setError((
char*)
"Unable to read column values (SDDSFile::readAsciiPage)");
7717 setReadRecoveryMode(1);
7723 if ((noRowCount) && (SDDS_stringIsBlank(bigBuffer))) {
7726 bigBufferCopy = bigBuffer;
7727 bigBufferCopySize = strlen(bigBufferCopy);
7728 for (i=columnIndex; i<columnCount; i++) {
7729 if (columnObject[i]->readAsciiValue(&bigBufferCopy, &bigBufferCopySize, 1)) {
7730 setError((
char*)
"Unable to read column (SDDSFile::readAsciiPage)");
7731 setReadRecoveryMode(1);
7734 if ((i+1 != columnCount) && (SDDS_stringIsBlank(bigBufferCopy))) {
7741 setError((
char*)
"Warning: missing element in row (SDDSFile::readAsciiPage)");
7742 setReadRecoveryMode(1);
7745 }
else if (linesPerRow > 1) {
7765int32_t SDDSFile::readBinaryPages() {
7771 bool big, nonNativeEndian;
7772 big = SDDS_isBigEndianMachine();
7774 if (bigEndian ==
true) {
7775 nonNativeEndian =
false;
7777 nonNativeEndian =
true;
7780 if (bigEndian ==
true) {
7781 nonNativeEndian =
true;
7783 nonNativeEndian =
false;
7786 if ((ptr = fBuffer.buffer = fBuffer.data = (
char*)SDDS_malloc(
sizeof(
char)*(defaultIOBufferSize+1))) == NULL) {
7787 setError((
char*)
"Unable to do buffered read--allocation error (SDDSFile::readBinaryPages)");
7790 fBuffer.bufferSize = defaultIOBufferSize;
7791 fBuffer.bytesLeft = 0;
7796 setError((
char*)
"Invalid file pointer (SDDSFile::readBinaryPages)");
7802 setError((
char*)
"Invalid file pointer (SDDSFile::readBinaryPages)");
7808 setReadRecoveryMode(0);
7812 if ((page==1) && (gzeof(gzfp))) {
7813 setError((
char*)
"No data in file (SDDSFile::readBinaryPages)");
7816 if (SDDS_bufferedRead(&n_rows,
sizeof(n_rows), gzfp, &fBuffer,
this)) {
7821 setError((
char*)
"Unable to read page--failure reading number of rows (SDDSFile::readBinaryPages)");
7824 if (columnCount == 0) {
7825 setError((
char*)
"Unable to read page--rows detected but no columns (SDDSFile::readBinaryPages)");
7828 for (i=0; i<parameterCount; i++) {
7829 if (getParameterFixedValue(i) == NULL) {
7830 if (parameterObject[i]->readBinaryValue(gzfp, &fBuffer, page, nonNativeEndian)) {
7831 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPages)");
7836 for (i=0; i<arrayCount; i++) {
7840 if (columnCount > 0) {
7841 if (columnMajorOrder && (layoutVersion >= 3)) {
7842 for (i=0; i<columnCount; i++) {
7843 if (columnObject[i]->readBinaryValues(gzfp, &fBuffer, page, n_rows, nonNativeEndian)) {
7844 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPages)");
7845 setReadRecoveryMode(1);
7850 for (j=1; j <= n_rows; j++) {
7851 for (i=0; i<columnCount; i++) {
7852 if (columnObject[i]->readBinaryValue(gzfp, &fBuffer, page, nonNativeEndian)) {
7853 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPages)");
7854 setReadRecoveryMode(1);
7863 if ((page==1) && (feof(fp))) {
7864 setError((
char*)
"No data in file (SDDSFile::readBinaryPages)");
7867 if (SDDS_bufferedRead(&n_rows,
sizeof(n_rows), fp, &fBuffer,
this)) {
7872 setError((
char*)
"Unable to read page--failure reading number of rows (SDDSFile::readBinaryPages)");
7875 if (columnCount == 0) {
7876 setError((
char*)
"Unable to read page--rows detected but no columns (SDDSFile::readBinaryPages)");
7879 for (i=0; i<parameterCount; i++) {
7880 if (getParameterFixedValue(i) == NULL) {
7881 if (parameterObject[i]->readBinaryValue(fp, &fBuffer, page, nonNativeEndian)) {
7882 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPages)");
7887 for (i=0; i<arrayCount; i++) {
7891 if (columnCount > 0) {
7892 if (columnMajorOrder && (layoutVersion >= 3)) {
7893 for (i=0; i<columnCount; i++) {
7894 if (columnObject[i]->readBinaryValues(fp, &fBuffer, page, n_rows, nonNativeEndian)) {
7895 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPages)");
7896 setReadRecoveryMode(1);
7901 for (j=1; j <= n_rows; j++) {
7902 for (i=0; i<columnCount; i++) {
7903 if (columnObject[i]->readBinaryValue(fp, &fBuffer, page, nonNativeEndian)) {
7904 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPages)");
7905 setReadRecoveryMode(1);
7930uint32_t SDDSFile::readBinaryPage() {
7932 static uint32_t page=1;
7936 bool big, nonNativeEndian;
7937 big = SDDS_isBigEndianMachine();
7939 if (bigEndian ==
true) {
7940 nonNativeEndian =
false;
7942 nonNativeEndian =
true;
7945 if (bigEndian ==
true) {
7946 nonNativeEndian =
true;
7948 nonNativeEndian =
false;
7951 if ((ptr = fBuffer.buffer = fBuffer.data = (
char*)SDDS_malloc(
sizeof(
char)*(defaultIOBufferSize+1))) == NULL) {
7952 setError((
char*)
"Unable to do buffered read--allocation error (SDDSFile::readBinaryPage)");
7955 fBuffer.bufferSize = defaultIOBufferSize;
7956 fBuffer.bytesLeft = 0;
7961 setError((
char*)
"Invalid file pointer (SDDSFile::readBinaryPage)");
7967 setError((
char*)
"Invalid file pointer (SDDSFile::readBinaryPage)");
7973 setReadRecoveryMode(0);
7976 if ((page==1) && (gzeof(gzfp))) {
7977 setError((
char*)
"No data in file (SDDSFile::readBinaryPage)");
7980 if (SDDS_bufferedRead(&n_rows,
sizeof(n_rows), gzfp, &fBuffer,
this)) {
7985 setError((
char*)
"Unable to read page--failure reading number of rows (SDDSFile::readBinaryPage)");
7988 if (columnCount == 0) {
7989 setError((
char*)
"Unable to read page--rows detected but no columns (SDDSFile::readBinaryPage)");
7992 for (i=0; i<parameterCount; i++) {
7993 if (getParameterFixedValue(i) == NULL) {
7994 if (parameterObject[i]->readBinaryValue(gzfp, &fBuffer, page, nonNativeEndian)) {
7995 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPage)");
8000 for (i=0; i<arrayCount; i++) {
8004 if (columnCount > 0) {
8005 if (columnMajorOrder && (layoutVersion >= 3)) {
8006 for (i=0; i<columnCount; i++) {
8007 if (columnObject[i]->readBinaryValues(gzfp, &fBuffer, page, n_rows, nonNativeEndian)) {
8008 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPage)");
8009 setReadRecoveryMode(1);
8014 for (j=1; j <= n_rows; j++) {
8015 for (i=0; i<columnCount; i++) {
8016 if (columnObject[i]->readBinaryValue(gzfp, &fBuffer, page, nonNativeEndian)) {
8017 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPage)");
8018 setReadRecoveryMode(1);
8027 if ((page==1) && (feof(fp))) {
8028 setError((
char*)
"No data in file (SDDSFile::readBinaryPage)");
8031 if (SDDS_bufferedRead(&n_rows,
sizeof(n_rows), fp, &fBuffer,
this)) {
8036 setError((
char*)
"Unable to read page--failure reading number of rows (SDDSFile::readBinaryPage)");
8039 if (columnCount == 0) {
8040 setError((
char*)
"Unable to read page--rows detected but no columns (SDDSFile::readBinaryPage)");
8043 for (i=0; i<parameterCount; i++) {
8044 if (getParameterFixedValue(i) == NULL) {
8045 if (parameterObject[i]->readBinaryValue(fp, &fBuffer, page, nonNativeEndian)) {
8046 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPage)");
8051 for (i=0; i<arrayCount; i++) {
8055 if (columnCount > 0) {
8056 if (columnMajorOrder && (layoutVersion >= 3)) {
8057 for (i=0; i<columnCount; i++) {
8058 if (columnObject[i]->readBinaryValues(fp, &fBuffer, page, n_rows, nonNativeEndian)) {
8059 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPage)");
8060 setReadRecoveryMode(1);
8065 for (j=1; j <= n_rows; j++) {
8066 for (i=0; i<columnCount; i++) {
8067 if (columnObject[i]->readBinaryValue(fp, &fBuffer, page, nonNativeEndian)) {
8068 setError((
char*)
"Unable to read page--failure reading parameter (SDDSFile::readBinaryPage)");
8069 setReadRecoveryMode(1);
8093uint32_t SDDSFile::pageCount() {
8095 uint32_t endPage, pages;
8097 for (i=0;i<parameterCount;i++) {
8098 pages = parameterObject[i]->getPageCount();
8099 if (pages > endPage)
8102 for (i=0;i<arrayCount;i++) {
8103 pages = arrayObject[i]->getPageCount();
8104 if (pages > endPage)
8107 for (i=0;i<columnCount;i++) {
8108 pages = columnObject[i]->getPageCount();
8109 if (pages > endPage)
8114uint32_t SDDSFile_pageCount(
void *sddsfile) {
8115 return(((SDDSFile*)sddsfile)->pageCount());
8127uint32_t SDDSFile::rowCount(uint32_t page) {
8129 uint32_t endRow, rows;
8131 for (i=0;i<columnCount;i++) {
8132 rows = columnObject[i]->getRowCount(page);
8133 if (rows > endRow) {
8136 fprintf(stderr,
"Error: inconsistant row count for page %" PRId32
" (SDDSFile::rowCount)\n", page);
8143uint32_t SDDSFile_rowCount(
void *sddsfile, uint32_t page) {
8144 return(((SDDSFile*)sddsfile)->rowCount(page));
8157int32_t SDDSFile::closeFile() {
8161 setError((
char*)
"Warning: problem closing file (SDDSFile::closeFile)");
8164 if (gzclose(gzfp)) {
8165 setError((
char*)
"Warning: problem closing file (SDDSFile::closeFile)");
8171 setError((
char*)
"Warning: problem closing file (SDDSFile::closeFile)");
8175 setError((
char*)
"Warning: problem closing file (SDDSFile::closeFile)");
8183int32_t SDDSFile_closeFile(
void *sddsfile) {
8184 return(((SDDSFile*)sddsfile)->closeFile());
8195int32_t SDDSFile::processArray(
char *s) {
8196 char *name=NULL, *symbol=NULL, *units=NULL;
8197 char *description=NULL, *format_string=NULL, *group_name=NULL;
8199 uint32_t field_length=0, dimensions=0;
8200 char *ptr, *tag, *value;
8201 char buffer[SDDS_MAXLINE];
8203 ptr = SDDS_prepareToParseTagValuePairs(s);
8204 while (*ptr && !SDDS_stringIsBlank(ptr) &&
8205 (ptr=getTagValuePair(ptr, &tag, &value))) {
8209 if (strcmp(tag, (
char*)
"name") == 0) {
8210 if (SDDS_copyString(&name, value)) {
8211 setError((
char*)
"Problem setting string value for namelist");
8214 }
else if (strcmp(tag, (
char*)
"type") == 0) {
8215 if (SDDS_copyString(&type, value)) {
8216 setError((
char*)
"Problem setting string value for namelist");
8219 }
else if (strcmp(tag, (
char*)
"units") == 0) {
8220 if (SDDS_copyString(&units, value)) {
8221 setError((
char*)
"Problem setting string value for namelist");
8224 }
else if (strcmp(tag, (
char*)
"symbol") == 0) {
8225 if (SDDS_copyString(&symbol, value)) {
8226 setError((
char*)
"Problem setting string value for namelist");
8229 }
else if (strcmp(tag, (
char*)
"description") == 0) {
8230 if (SDDS_copyString(&description, value)) {
8231 setError((
char*)
"Problem setting string value for namelist");
8234 }
else if (strcmp(tag, (
char*)
"format_string") == 0) {
8235 if (SDDS_copyString(&format_string, value)) {
8236 setError((
char*)
"Problem setting string value for namelist");
8239 }
else if (strcmp(tag, (
char*)
"group_name") == 0) {
8240 if (SDDS_copyString(&group_name, value)) {
8241 setError((
char*)
"Problem setting string value for namelist");
8244 }
else if (strcmp(tag, (
char*)
"field_length") == 0) {
8245 if (!sscanf(value,
"%" SCNu32, &field_length)) {
8246 setError((
char*)
"Problem scanning int32_t value for namelist");
8249 }
else if (strcmp(tag, (
char*)
"dimensions") == 0) {
8250 if (!sscanf(value,
"%" SCNu32, &dimensions)) {
8251 setError((
char*)
"Problem scanning int32_t value for namelist");
8255 sprintf(buffer,
"Unknown array tag %s", tag);
8261 setError((
char*)
"Problem parsing array namelist");
8264 if (defineArray(name, symbol, units, description,
8265 format_string, group_name, type, field_length, dimensions) == -1) {
8275 SDDS_free(description);
8277 SDDS_free(format_string);
8279 SDDS_free(group_name);
8293int32_t SDDSFile::processColumn(
char *s) {
8294 char *name=NULL, *symbol=NULL, *units=NULL;
8295 char *description=NULL, *format_string=NULL;
8297 uint32_t field_length=0;
8298 char *ptr, *tag, *value;
8299 char buffer[SDDS_MAXLINE];
8301 ptr = SDDS_prepareToParseTagValuePairs(s);
8302 while (*ptr && !SDDS_stringIsBlank(ptr) &&
8303 (ptr=getTagValuePair(ptr, &tag, &value))) {
8307 if (strcmp(tag, (
char*)
"name") == 0) {
8308 if (SDDS_copyString(&name, value)) {
8309 setError((
char*)
"Problem setting string value for namelist");
8312 }
else if (strcmp(tag, (
char*)
"type") == 0) {
8313 if (SDDS_copyString(&type, value)) {
8314 setError((
char*)
"Problem setting string value for namelist");
8317 }
else if (strcmp(tag, (
char*)
"units") == 0) {
8318 if (SDDS_copyString(&units, value)) {
8319 setError((
char*)
"Problem setting string value for namelist");
8322 }
else if (strcmp(tag, (
char*)
"symbol") == 0) {
8323 if (SDDS_copyString(&symbol, value)) {
8324 setError((
char*)
"Problem setting string value for namelist");
8327 }
else if (strcmp(tag, (
char*)
"description") == 0) {
8328 if (SDDS_copyString(&description, value)) {
8329 setError((
char*)
"Problem setting string value for namelist");
8332 }
else if (strcmp(tag, (
char*)
"format_string") == 0) {
8333 if (SDDS_copyString(&format_string, value)) {
8334 setError((
char*)
"Problem setting string value for namelist");
8337 }
else if (strcmp(tag, (
char*)
"field_length") == 0) {
8338 if (!sscanf(value,
"%" SCNu32, &field_length)) {
8339 setError((
char*)
"Problem scanning int32_t value for namelist");
8343 sprintf(buffer,
"Unknown column tag %s", tag);
8349 setError((
char*)
"Problem parsing column namelist");
8352 if (defineColumn(name, symbol, units, description,
8353 format_string, type, field_length) == -1) {
8363 SDDS_free(description);
8365 SDDS_free(format_string);
8379int32_t SDDSFile::processData(
char *s) {
8380 int32_t no_row_counts=0;
8382 char *ptr, *tag, *value;
8383 char buffer[SDDS_MAXLINE];
8385 columnMajorOrder =
false;
8386 ptr = SDDS_prepareToParseTagValuePairs(s);
8387 while (*ptr && !SDDS_stringIsBlank(ptr) &&
8388 (ptr=getTagValuePair(ptr, &tag, &value))) {
8392 if (strcmp(tag, (
char*)
"mode") == 0) {
8393 if (strcmp(value, (
char*)
"ascii") == 0) {
8395 }
else if (strcmp(value, (
char*)
"binary") == 0) {
8398 }
else if (strcmp(tag, (
char*)
"column_major_order") == 0) {
8399 if (strcmp(value,
"true") == 0) {
8400 columnMajorOrder =
true;
8402 columnMajorOrder =
false;
8404 }
else if (strcmp(tag, (
char*)
"no_row_counts") == 0) {
8405 if (strcmp(value,
"true") == 0) {
8407 }
else if (strcmp(value,
"false") == 0) {
8410 if (!sscanf(value,
"%" SCNd32, &no_row_counts)) {
8411 setError((
char*)
"Problem scanning int32_t value for namelist");
8414 if (no_row_counts) {
8420 }
else if (strcmp(tag, (
char*)
"endian") == 0) {
8421 if (strcmp(value, (
char*)
"big") == 0) {
8423 }
else if (strcmp(value, (
char*)
"little") == 0) {
8426 }
else if (strcmp(tag, (
char*)
"lines_per_row") == 0) {
8427 if (!sscanf(value,
"%" SCNd32, &linesPerRow)) {
8428 setError((
char*)
"Problem scanning int32_t value for namelist");
8431 }
else if (strcmp(tag, (
char*)
"additional_header_lines") == 0) {
8432 if (!sscanf(value,
"%" SCNd32, &additionalHeaderLines)) {
8433 setError((
char*)
"Problem scanning int32_t value for namelist");
8437 sprintf(buffer,
"Unknown data tag %s", tag);
8443 setError((
char*)
"Problem parsing data namelist");
8457int32_t SDDSFile::processDescription(
char *s) {
8458 char *text=NULL, *contents=NULL;
8459 char *ptr, *tag, *value;
8460 char buffer[SDDS_MAXLINE];
8462 ptr = SDDS_prepareToParseTagValuePairs(s);
8463 while (*ptr && !SDDS_stringIsBlank(ptr) &&
8464 (ptr=getTagValuePair(ptr, &tag, &value))) {
8468 if (strcmp(tag, (
char*)
"text") == 0) {
8469 if (SDDS_copyString(&text, value)) {
8470 setError((
char*)
"Problem setting string value for namelist");
8473 }
else if (strcmp(tag, (
char*)
"contents") == 0) {
8474 if (SDDS_copyString(&contents, value)) {
8475 setError((
char*)
"Problem setting string value for namelist");
8479 sprintf(buffer,
"Unknown description tag %s", tag);
8485 setError((
char*)
"Problem parsing description namelist");
8488 setDescription(text, contents);
8492 SDDS_free(contents);
8504int32_t SDDSFile::processParameter(
char *s) {
8505 char *name=NULL, *symbol=NULL, *units=NULL;
8506 char *description=NULL, *format_string=NULL, *fixed_value=NULL;
8508 char *ptr, *tag, *value;
8509 char buffer[SDDS_MAXLINE];
8511 ptr = SDDS_prepareToParseTagValuePairs(s);
8512 while (*ptr && !SDDS_stringIsBlank(ptr) &&
8513 (ptr=getTagValuePair(ptr, &tag, &value))) {
8517 if (strcmp(tag, (
char*)
"name") == 0) {
8518 if (SDDS_copyString(&name, value)) {
8519 setError((
char*)
"Problem setting string value for namelist");
8522 }
else if (strcmp(tag, (
char*)
"type") == 0) {
8523 if (SDDS_copyString(&type, value)) {
8524 setError((
char*)
"Problem setting string value for namelist");
8527 }
else if (strcmp(tag, (
char*)
"units") == 0) {
8528 if (SDDS_copyString(&units, value)) {
8529 setError((
char*)
"Problem setting string value for namelist");
8532 }
else if (strcmp(tag, (
char*)
"symbol") == 0) {
8533 if (SDDS_copyString(&symbol, value)) {
8534 setError((
char*)
"Problem setting string value for namelist");
8537 }
else if (strcmp(tag, (
char*)
"description") == 0) {
8538 if (SDDS_copyString(&description, value)) {
8539 setError((
char*)
"Problem setting string value for namelist");
8542 }
else if (strcmp(tag, (
char*)
"format_string") == 0) {
8543 if (SDDS_copyString(&format_string, value)) {
8544 setError((
char*)
"Problem setting string value for namelist");
8547 }
else if (strcmp(tag, (
char*)
"fixed_value") == 0) {
8548 if (SDDS_copyString(&fixed_value, value)) {
8549 setError((
char*)
"Problem setting string value for namelist");
8552 SDDS_interpretEscapes(fixed_value);
8554 sprintf(buffer,
"Unknown parameter tag %s", tag);
8560 setError((
char*)
"Problem parsing parameter namelist");
8563 if (defineParameter(name, symbol, units, description,
8564 format_string, type, fixed_value) == -1) {
8574 SDDS_free(description);
8576 SDDS_free(format_string);
8578 SDDS_free(fixed_value);
8584char* SDDSFile::getTagValuePair(
char *ptr,
char **tag,
char **value) {
8590 *tag = *value = NULL;
8591 while (*ptr==
' ' || *ptr==
',' || *ptr==
'\t') {
8599 while (*ptr && *ptr!=
' ' && *ptr!=
'\t' && *ptr!=
'=') {
8605 while (*ptr==
' ' || *ptr==
'\t') {
8608 if (*ptr++!=
'=' || !*ptr) {
8609 sprintf(buffer,
"Namelist error: Field name %s ends string", *tag);
8616 while (*ptr==
' ' || *ptr==
'\t') {
8620 sprintf(buffer,
"Namelist error: Field name %s ends string", *tag);
8624 if (!strlen(*tag)) {
8625 sprintf(buffer,
"Namelist error: Field name is blank");
8630 if (*ptr==
'"' && *(ptr-1)!=
'\\') {
8632 if (*ptr==
'"' && *(ptr-1)!=
'\\') {
8638 while (*ptr && !(*ptr==
'"' && *(ptr-1)!=
'\\')) {
8641 if (*ptr==
'"' && *(ptr-1)!=
'\\') {
8646 while (*ptr!=
' ' && *ptr!=
',' && *ptr!=
'\t' && *ptr) {
8667int32_t SDDSFile::copyParameterDefinitions(
void *sdds_source) {
8668 int32_t count, i, *type;
8669 char **name, **symbol, **units, **description, **format_string, **fixed_value;
8671 count = ((SDDSFile*)sdds_source)->getParameterCount();
8672 name = ((SDDSFile*)sdds_source)->getParameterNames();
8673 symbol = ((SDDSFile*)sdds_source)->getParameterSymbols();
8674 units = ((SDDSFile*)sdds_source)->getAllParameterUnits();
8675 description = ((SDDSFile*)sdds_source)->getParameterDescriptions();
8676 format_string = ((SDDSFile*)sdds_source)->getParameterFormatStrings();
8677 fixed_value = ((SDDSFile*)sdds_source)->getParameterFixedValues();
8678 type = ((SDDSFile*)sdds_source)->getParameterTypes();
8679 for (i=0 ; i<count ; i++) {
8680 if (defineParameter(name[i], symbol[i], units[i], description[i],
8681 format_string[i], type[i], fixed_value[i]) == -1) {
8689 SDDS_free(description);
8690 SDDS_free(format_string);
8691 SDDS_free(fixed_value);
8696int32_t SDDSFile_copyParameterDefinitions(
void *sddsfile,
void *sdds_source) {
8697 return(((SDDSFile*)sddsfile)->copyParameterDefinitions(sdds_source));
8710int32_t SDDSFile::copyParameterDefinition(
void *sdds_source,
char *orig_parameter_name,
char *new_parameter_name) {
8712 char s[SDDS_MAXLINE];
8713 i = ((SDDSFile*)sdds_source)->getParameterIndex(orig_parameter_name);
8715 sprintf(s,
"Warning: parameter %s does not exist (SDDSFile::copyParameterDefinition)", orig_parameter_name);
8719 if (defineParameter(new_parameter_name,
8720 ((SDDSFile*)sdds_source)->getParameterSymbol(i),
8721 ((SDDSFile*)sdds_source)->getParameterUnits(i),
8722 ((SDDSFile*)sdds_source)->getParameterDescription(i),
8723 ((SDDSFile*)sdds_source)->getParameterFormatString(i),
8724 ((SDDSFile*)sdds_source)->getParameterType(i),
8725 ((SDDSFile*)sdds_source)->getParameterFixedValue(i)) == -1) {
8730int32_t SDDSFile_copyParameterDefinition(
void *sddsfile,
void *sdds_source,
char *orig_parameter_name,
char *new_parameter_name) {
8731 return(((SDDSFile*)sddsfile)->copyParameterDefinition(sdds_source, orig_parameter_name, new_parameter_name));
8744int32_t SDDSFile::copyArrayDefinitions(
void *sdds_source) {
8745 int32_t count, i, *type;
8746 uint32_t *field_length, *dimensions;
8747 char **name, **symbol, **units, **description, **format_string, **group_name;
8749 count = ((SDDSFile*)sdds_source)->getArrayCount();
8750 name = ((SDDSFile*)sdds_source)->getArrayNames();
8751 symbol = ((SDDSFile*)sdds_source)->getArraySymbols();
8752 units = ((SDDSFile*)sdds_source)->getAllArrayUnits();
8753 description = ((SDDSFile*)sdds_source)->getArrayDescriptions();
8754 format_string = ((SDDSFile*)sdds_source)->getArrayFormatStrings();
8755 group_name = ((SDDSFile*)sdds_source)->getArrayGroupNames();
8756 field_length = ((SDDSFile*)sdds_source)->getArrayFieldLengths();
8757 dimensions = ((SDDSFile*)sdds_source)->getAllArrayDimensions();
8758 type = ((SDDSFile*)sdds_source)->getArrayTypes();
8759 for (i=0 ; i<count ; i++) {
8760 if (defineArray(name[i], symbol[i], units[i], description[i],
8761 format_string[i], group_name[i], type[i], field_length[i], dimensions[i]) == -1) {
8769 SDDS_free(description);
8770 SDDS_free(format_string);
8771 SDDS_free(group_name);
8772 SDDS_free(field_length);
8773 SDDS_free(dimensions);
8778int32_t SDDSFile_copyArrayDefinitions(
void *sddsfile,
void *sdds_source) {
8779 return(((SDDSFile*)sddsfile)->copyArrayDefinitions(sdds_source));
8792int32_t SDDSFile::copyArrayDefinition(
void *sdds_source,
char *orig_array_name,
char *new_array_name) {
8794 char s[SDDS_MAXLINE];
8795 i = ((SDDSFile*)sdds_source)->getArrayIndex(orig_array_name);
8797 sprintf(s,
"Warning: array %s does not exist (SDDSFile::copyArrayDefinition)", orig_array_name);
8801 if (defineArray(new_array_name,
8802 ((SDDSFile*)sdds_source)->getArraySymbol(i),
8803 ((SDDSFile*)sdds_source)->getArrayUnits(i),
8804 ((SDDSFile*)sdds_source)->getArrayDescription(i),
8805 ((SDDSFile*)sdds_source)->getArrayFormatString(i),
8806 ((SDDSFile*)sdds_source)->getArrayGroupName(i),
8807 ((SDDSFile*)sdds_source)->getArrayType(i),
8808 ((SDDSFile*)sdds_source)->getArrayFieldLength(i),
8809 ((SDDSFile*)sdds_source)->getArrayDimensions(i)) == -1) {
8814int32_t SDDSFile_copyArrayDefinition(
void *sddsfile,
void *sdds_source,
char *orig_array_name,
char *new_array_name) {
8815 return(((SDDSFile*)sddsfile)->copyArrayDefinition(sdds_source, orig_array_name, new_array_name));
8828int32_t SDDSFile::copyColumnDefinitions(
void *sdds_source) {
8829 int32_t count, i, *type;
8830 uint32_t *field_length;
8831 char **name, **symbol, **units, **description, **format_string;
8833 count = ((SDDSFile*)sdds_source)->getColumnCount();
8834 name = ((SDDSFile*)sdds_source)->getColumnNames();
8835 symbol = ((SDDSFile*)sdds_source)->getColumnSymbols();
8836 units = ((SDDSFile*)sdds_source)->getAllColumnUnits();
8837 description = ((SDDSFile*)sdds_source)->getColumnDescriptions();
8838 format_string = ((SDDSFile*)sdds_source)->getColumnFormatStrings();
8839 field_length = ((SDDSFile*)sdds_source)->getColumnFieldLengths();
8840 type = ((SDDSFile*)sdds_source)->getColumnTypes();
8841 for (i=0 ; i<count ; i++) {
8842 if (defineColumn(name[i], symbol[i], units[i], description[i],
8843 format_string[i], type[i], field_length[i]) == -1) {
8851 SDDS_free(description);
8852 SDDS_free(format_string);
8853 SDDS_free(field_length);
8858int32_t SDDSFile_copyColumnDefinitions(
void *sddsfile,
void *sdds_source) {
8859 return(((SDDSFile*)sddsfile)->copyColumnDefinitions(sdds_source));
8872int32_t SDDSFile::copyColumnDefinition(
void *sdds_source,
char *orig_column_name,
char *new_column_name) {
8874 char s[SDDS_MAXLINE];
8875 i = ((SDDSFile*)sdds_source)->getColumnIndex(orig_column_name);
8877 sprintf(s,
"Warning: column %s does not exist (SDDSFile::copyColumnDefinition)", orig_column_name);
8881 if (defineColumn(new_column_name,
8882 ((SDDSFile*)sdds_source)->getColumnSymbol(i),
8883 ((SDDSFile*)sdds_source)->getColumnUnits(i),
8884 ((SDDSFile*)sdds_source)->getColumnDescription(i),
8885 ((SDDSFile*)sdds_source)->getColumnFormatString(i),
8886 ((SDDSFile*)sdds_source)->getColumnType(i),
8887 ((SDDSFile*)sdds_source)->getColumnFieldLength(i)) == -1) {
8892int32_t SDDSFile_copyColumnDefinition(
void *sddsfile,
void *sdds_source,
char *orig_column_name,
char *new_column_name) {
8893 return(((SDDSFile*)sddsfile)->copyColumnDefinition(sdds_source, orig_column_name, new_column_name));
8906int32_t SDDSFile::readRecoveryPossible(
void) {
8907 int32_t returnValue;
8908 returnValue = recoveryPossible;
8909 recoveryPossible = 0;
8910 return(returnValue);
8913int32_t SDDSFile_readRecoveryPossible(
void *sddsfile) {
8914 return(((SDDSFile*)sddsfile)->readRecoveryPossible());
8924void SDDSFile::setReadRecoveryMode(int32_t mode) {
8925 recoveryPossible = mode;