libRoadRunner C API  1.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
rrc_utilities.h
Go to the documentation of this file.
1 
42 #ifndef rrc_utilitiesH
43 #define rrc_utilitiesH
44 #include "rrc_exporter.h"
45 #include "rrc_types.h"
46 #include "rrc_exporter.h"
47 #include "rrc_macros.h"
48 //---------------------------------------------------------------------------
49 
50 #if defined(__cplusplus)
51 namespace rrc
52 {
53 extern "C"
54 {
55 #endif
56 
60 extern char* gLastError;
61 
65 extern char* gInstallFolder;
66 
67 //Error/Warning Messages
71 extern const char* ALLOCATE_API_ERROR_MSG;
72 
76 extern const char* INVALID_HANDLE_ERROR_MSG;
77 
84 C_DECL_SPEC char* rrcCallConv getFileContent(const char* fName);
85 
92 C_DECL_SPEC char* rrcCallConv createText(const char* text);
93 
100 C_DECL_SPEC char* rrcCallConv createTextMemory(const int count);
101 
102 // --------------------------------------------------------------------
103 // List support routines
104 // --------------------------------------------------------------------
105 
133 C_DECL_SPEC RRListPtr rrcCallConv createRRList(void);
134 
139 C_DECL_SPEC void rrcCallConv freeRRList (RRListPtr list);
140 
148 C_DECL_SPEC int rrcCallConv getListLength (RRListPtr myList);
149 
150 
158 C_DECL_SPEC RRListItemPtr rrcCallConv createIntegerItem (int value);
159 
167 C_DECL_SPEC RRListItemPtr rrcCallConv createDoubleItem (double value);
168 
176 C_DECL_SPEC RRListItemPtr rrcCallConv createStringItem (char* value);
177 
185 C_DECL_SPEC RRListItemPtr rrcCallConv createListItem (struct RRList* value);
186 
201 C_DECL_SPEC int rrcCallConv addItem (RRListPtr list, RRListItemPtr *item);
202 
203 
213 C_DECL_SPEC RRListItemPtr rrcCallConv getListItem (RRListPtr list, int index);
214 
222 C_DECL_SPEC int rrcCallConv isListItemInteger (RRListItemPtr item);
223 
231 C_DECL_SPEC int rrcCallConv isListItemDouble (RRListItemPtr item);
232 
240 C_DECL_SPEC int rrcCallConv isListItemString (RRListItemPtr item);
241 
249 C_DECL_SPEC int rrcCallConv isListItemList (RRListItemPtr item);
250 
259 C_DECL_SPEC int rrcCallConv isListItem (RRListItemPtr item, enum ListItemType itemType);
260 
269 C_DECL_SPEC int rrcCallConv getIntegerListItem (RRListItemPtr item, int *value);
270 
279 C_DECL_SPEC int rrcCallConv getDoubleListItem (RRListItemPtr item, double *value);
280 
288 C_DECL_SPEC char* rrcCallConv getStringListItem (RRListItemPtr item);
289 
290 
298 C_DECL_SPEC RRListPtr rrcCallConv getList(RRListItemPtr item);
299 
300 // --------------------------------------------------------------------------------
301 // Free memory functions
302 // --------------------------------------------------------------------------------
303 
308 C_DECL_SPEC int rrcCallConv freeRRCData(RRCDataPtr handle);
309 
314 C_DECL_SPEC int rrcCallConv freeText(char* text);
315 
316 
321 //C_DECL_SPEC int rrcCallConv freeStringList(RRStringListHandle sl);
322 
327 C_DECL_SPEC int rrcCallConv freeStringArray(RRStringArrayPtr sl);
328 
333 C_DECL_SPEC int rrcCallConv freeVector(RRVectorPtr vector);
334 
339 C_DECL_SPEC int rrcCallConv freeMatrix(RRDoubleMatrixPtr matrix);
340 
341 // --------------------------------------------------------------------------------
342 // Helper Methods
343 // --------------------------------------------------------------------------------
344 
356 C_DECL_SPEC int rrcCallConv getVectorLength (RRVectorPtr vector);
357 
369 C_DECL_SPEC RRVectorPtr rrcCallConv createVector (int size);
370 
384 C_DECL_SPEC int rrcCallConv getVectorElement (RRVectorPtr vector, int index, double* value);
385 
386 
400 C_DECL_SPEC int rrcCallConv setVectorElement (RRVectorPtr vector, int index, double value);
401 
413 C_DECL_SPEC RRDoubleMatrixPtr rrcCallConv createRRMatrix (int r, int c);
414 
426 C_DECL_SPEC int rrcCallConv getMatrixNumRows (RRDoubleMatrixPtr m);
427 
439 C_DECL_SPEC int rrcCallConv getMatrixNumCols (RRDoubleMatrixPtr m);
440 
458 C_DECL_SPEC int rrcCallConv getMatrixElement (RRDoubleMatrixPtr m, int r, int c, double* value);
459 
477 C_DECL_SPEC int rrcCallConv setMatrixElement (RRDoubleMatrixPtr m, int r, int c, double value);
478 
479 
497 C_DECL_SPEC int rrcCallConv getComplexMatrixElement (RRComplexMatrixPtr m, int r, int c, RRComplexPtr value);
498 
499 
517 C_DECL_SPEC int rrcCallConv setComplexMatrixElement (RRComplexMatrixPtr m, int r, int c, RRComplexPtr value);
518 
519 
529 C_DECL_SPEC int rrcCallConv getRRDataNumRows (RRCDataPtr rrData);
530 
540 C_DECL_SPEC int rrcCallConv getRRDataNumCols (RRCDataPtr rrData);
541 
556 C_DECL_SPEC int rrcCallConv getRRCDataElement (RRCDataPtr rrData, int r, int c, double *value);
557 
570 C_DECL_SPEC char* rrcCallConv getRRDataColumnLabel (RRCDataPtr rrData, int column);
571 
572 // --------------------------------------------------------------------------------
573 // Convert data to string functions
574 // --------------------------------------------------------------------------------
575 
581 C_DECL_SPEC char* rrcCallConv vectorToString(const RRVectorPtr vec);
582 
588 C_DECL_SPEC char* rrcCallConv complexVectorToString(const RRComplexVectorPtr vec);
589 
595 C_DECL_SPEC char* rrcCallConv rrCDataToString(const RRCDataPtr rrData);
596 
602 C_DECL_SPEC char* rrcCallConv matrixToString(const RRDoubleMatrixPtr mat);
603 
609 C_DECL_SPEC char* rrcCallConv complexMatrixToString(const RRComplexMatrixPtr mat);
610 
616 C_DECL_SPEC int rrcCallConv getNumberOfStringElements(const RRStringArrayPtr list);
617 
623 C_DECL_SPEC char* rrcCallConv getStringElement (RRStringArrayPtr list, int index);
624 
630 C_DECL_SPEC char* rrcCallConv stringArrayToString(const RRStringArrayPtr list);
631 
637 C_DECL_SPEC char* rrcCallConv listToString(const RRListPtr list);
638 
639 
640 //======================== DATA WRITING ROUTINES =============================
648 C_DECL_SPEC int rrcCallConv writeRRData(RRHandle handle, const char* fileNameAndPath);
649 
650 
652 // TEST UTILITY functions (to be documented later. Only for internal testing)
660 C_DECL_SPEC int rrcCallConv compileSource(RRHandle handle, const char* sourceFileNameAndPath);
661 
662 
663 #if defined(__cplusplus)
664 
665 } //namespace
666 } //Extern "C"
667 #endif
668 
669 #endif
Structure for a complex number.
Definition: rrc_types.h:83
char * createTextMemory(const int count)
Creates memory for holding a string.
Definition: rrc_utilities.cpp:57
Structure for a simple vector of strings.
Definition: rrc_types.h:65
void freeRRList(RRListPtr list)
Free RRListPtr structure, i.e destroy a list.
Definition: rrc_utilities.cpp:73
char * getStringElement(RRStringArrayPtr list, int index)
Returns the indexth element from the string array in the argument value.
Definition: rrc_utilities.cpp:608
char * getRRDataColumnLabel(RRCDataPtr rrData, int column)
Retrieves a label for a given column in a rrData type variable.
Definition: rrc_utilities.cpp:579
int setVectorElement(RRVectorPtr vector, int index, double value)
Set a particular element in a vector.
Definition: rrc_utilities.cpp:395
Definition: _rrc_api.cpp:84
roadRunner C API 2012
int getComplexMatrixElement(RRComplexMatrixPtr m, int r, int c, RRComplexPtr value)
Retrieve an element at a given row and column from a complex matrix type variable.
Definition: rrc_utilities.cpp:497
int getNumberOfStringElements(const RRStringArrayPtr list)
Returns the length of a string array.
Definition: rrc_utilities.cpp:600
int getVectorLength(RRVectorPtr vector)
Get the number of elements in a vector type.
Definition: rrc_utilities.cpp:362
RRListItemPtr createStringItem(char *value)
Create a list item to store a pointer to a char*.
Definition: rrc_utilities.cpp:113
int getListLength(RRListPtr myList)
Returns the length of a given list.
Definition: rrc_utilities.cpp:218
RRListPtr getList(RRListItemPtr item)
Returns a list from a list item if it contains a list.
Definition: rrc_utilities.cpp:208
int freeMatrix(RRDoubleMatrixPtr matrix)
Free RRDoubleMatrixPtr structures.
Definition: rrc_utilities.cpp:288
RRListItemPtr createIntegerItem(int value)
Create a list item to store an integer.
Definition: rrc_utilities.cpp:97
ListItemType
The list type supports strings, integers, double and lists.
Definition: rrc_types.h:121
char * vectorToString(const RRVectorPtr vec)
Returns a vector in string form.
Definition: rrc_utilities.cpp:742
int getVectorElement(RRVectorPtr vector, int index, double *value)
Get a particular element from a vector.
Definition: rrc_utilities.cpp:375
int isListItem(RRListItemPtr item, enum ListItemType itemType)
Returns true or false if the list item is the given itemType.
Definition: rrc_utilities.cpp:213
char * complexVectorToString(const RRComplexVectorPtr vec)
Returns a complex vector in string form.
Definition: rrc_utilities.cpp:768
RRListPtr createRRList(void)
Create a new list.
Definition: rrc_utilities.cpp:65
int setComplexMatrixElement(RRComplexMatrixPtr m, int r, int c, RRComplexPtr value)
Set an element at a given row and column with a given value in a complex matrix type variable...
char * getFileContent(const char *fName)
Retrieves the the content of a file.
Definition: rrc_utilities.cpp:44
Structure for a simple vector of doubles.
Definition: rrc_types.h:57
char * stringArrayToString(const RRStringArrayPtr list)
Returns a string list in string form.
Definition: rrc_utilities.cpp:626
Structure for a simple double Matrix type.
Definition: rrc_types.h:73
char * createText(const char *text)
Creates memory for holding a string.
Definition: rrc_utilities.cpp:39
int isListItemList(RRListItemPtr item)
Returns true or false if the list item is a list itself.
Definition: rrc_utilities.cpp:172
int addItem(RRListPtr list, RRListItemPtr *item)
Add a list item to a list and return index to the added item.
Definition: rrc_utilities.cpp:131
int setMatrixElement(RRDoubleMatrixPtr m, int r, int c, double value)
Set an element at a given row and column with a given value in a matrix type variable.
Definition: rrc_utilities.cpp:477
roadRunner C API 2012
int isListItemInteger(RRListItemPtr item)
Returns true or false if the list item is an integer.
Definition: rrc_utilities.cpp:157
void * RRHandle
Void pointer to a RoadRunner instance.
Definition: rrc_types.h:50
RRVectorPtr createVector(int size)
Create a new vector with a given size.
Definition: rrc_utilities.cpp:354
Structure for a simple complex Matrix type.
Definition: rrc_types.h:100
const char * ALLOCATE_API_ERROR_MSG
Global parameter holding message for an un-allocated API.
Definition: rrc_utilities.cpp:33
int getRRDataNumCols(RRCDataPtr rrData)
Retrieve the number of columns in the given rrData data (returned form simulate(RRHandle handle)) ...
Definition: rrc_utilities.cpp:549
int writeRRData(RRHandle handle, const char *fileNameAndPath)
Writes RoadRunner data to file.
RRListItemPtr getListItem(RRListPtr list, int index)
Returns the index^th item from the list.
Definition: rrc_utilities.cpp:177
RRListItemPtr createDoubleItem(double value)
Create a list item to store a double value.
Definition: rrc_utilities.cpp:105
int compileSource(RRHandle handle, const char *sourceFileNameAndPath)
Compiles source code.
Definition: rrc_utilities.cpp:52
int getDoubleListItem(RRListItemPtr item, double *value)
Returns the double from a list item.
Definition: rrc_utilities.cpp:192
int isListItemString(RRListItemPtr item)
Returns true or false if the list item is a character array.
Definition: rrc_utilities.cpp:167
Structure for the result type from the simulate calls. The client is responsible for freeing the RRCD...
Definition: rrc_types.h:110
char * getStringListItem(RRListItemPtr item)
Returns the string from a list item.
Definition: rrc_utilities.cpp:203
A list type, stores int, double, strings and lists.
Definition: rrc_types.h:147
char * complexMatrixToString(const RRComplexMatrixPtr mat)
Returns a complex matrix in string form.
Definition: rrc_utilities.cpp:714
int getRRCDataElement(RRCDataPtr rrData, int r, int c, double *value)
Retrieves an element at a given row and column from a RoadRunner data type variable.
Definition: rrc_utilities.cpp:559
Structure for a simple complex Vector type.
Definition: rrc_types.h:91
int getMatrixNumCols(RRDoubleMatrixPtr m)
Retrieve the number of columns in the given matrix.
Definition: rrc_utilities.cpp:446
A single list element type.
Definition: rrc_types.h:132
int getMatrixElement(RRDoubleMatrixPtr m, int r, int c, double *value)
Retrieve an element at a given row and column from a matrix type variable.
Definition: rrc_utilities.cpp:457
int freeVector(RRVectorPtr vector)
Free RRVectorHandle structures.
Definition: rrc_utilities.cpp:342
int getIntegerListItem(RRListItemPtr item, int *value)
Returns the integer from a list item.
Definition: rrc_utilities.cpp:182
RRListItemPtr createListItem(struct RRList *value)
Create a list item to store a list.
Definition: rrc_utilities.cpp:121
char * listToString(const RRListPtr list)
Returns a list in string form.
Definition: rrc_utilities.cpp:223
int getRRDataNumRows(RRCDataPtr rrData)
Retrieve the number of rows in the given RoadRunner numerical data (returned from simulate(RRHandle h...
Definition: rrc_utilities.cpp:539
roadRunner C API 2012
char * matrixToString(const RRDoubleMatrixPtr mat)
Returns a matrix in string form.
Definition: rrc_utilities.cpp:686
int isListItemDouble(RRListItemPtr item)
Returns true or false if the list item is a double.
Definition: rrc_utilities.cpp:162
int freeStringArray(RRStringArrayPtr sl)
Free RRStringListHandle structures.
Definition: rrc_utilities.cpp:325
RRDoubleMatrixPtr createRRMatrix(int r, int c)
Create an empty matrix of size r by c.
Definition: rrc_utilities.cpp:417
char * gLastError
Global parameter holding last error, if any.
Definition: rrc_utilities.cpp:35
const char * INVALID_HANDLE_ERROR_MSG
Global parameter holding message when an invalid is handed to a function.
Definition: rrc_utilities.cpp:34
char * rrCDataToString(const RRCDataPtr rrData)
Returns a rrCData struct in string form.
Definition: rrc_utilities.cpp:648
int getMatrixNumRows(RRDoubleMatrixPtr m)
Retrieve the number of rows in the given matrix.
Definition: rrc_utilities.cpp:436
char * gInstallFolder
Global parameter holding C API install folder.
Definition: rrc_utilities.cpp:37
int freeText(char *text)
Free char* generated by library routines.
Definition: rrc_utilities.cpp:317
int freeRRCData(RRCDataPtr handle)
Free the memory associated to a RRCData object.
Definition: rrc_utilities.cpp:300