Developing a RAM
Repository access managers (RAMs) provide CARMA with access to specific SCMs. A RAM is a dynamically linked library (DLL) that exports entry points for all API functions that it implements. An API function reference is included at the end of this chapter.
Most RAM functions have the following pattern:
- Determine what instance and/or member the request applies to
- Contact the SCM to carry out the requested operation
- Allocate any memory necessary to return the result
- Fill the allocated memory with the result
- Return the result to CARMA
You can use the skeleton RAM source file, CRARAMSA
(located
in the sample library), as a starting point for your RAM if you are
developing your RAM in C. Keep in mind that your RAM must follow the
state, memory allocation, and API implementation guidelines given
in this document; otherwise, serious problems could develop: CARMA
might not communicate properly with the RAM; memory leaks could develop;
or, in the worst case, CARMA or the RAM could abnormally end. Specifically,
read the following sections carefully: