| 119 | === Higher level API for C and C++ === |
| 120 | |
| 121 | * There is a lot of code which many modules replicate over and over. A most prominent example is perhaps random access to raster values. |
| 122 | * The goal of the project is to make writing of modules in C and in C++ much easier and reduce duplication of code among the modules. |
| 123 | * Proposal must identify potential areas which need a higher level API and what features would the API provide in comparison to the current API (and when it would be just enough to extent the current API). |
| 124 | * Possible improvements include: |
| 125 | * Random access to raster values which supports all-in-memory approach and hides implementation details such as row-based storage and separate segmentation. |
| 126 | * Unified access to a series of maps (list, group, spatio-temproal dataset) which hides potential improvements towards direct support of NetCDF series or Rasdaman. |
| 127 | * C++ interface leveraging C++ features such as operator overloading or support of STL algorithms. |
| 128 | * Bridging of C++ RAII and try-catch with GRASS GIS C API exit and optional memory cleaning must be addressed. |
| 129 | * Language requirements: C and C++ |
| 130 | * Mentor: ? |
| 131 | * Co-mentor: Vaclav Petras |