Introduction
Cross reference (X-Ref) information describes where a certain construct is used (or is referred to) and which other constructs it in turn uses (or refers to).
SNiFF+ provides two alternative X-Ref subsystems for managing cross reference information, either RAM-based cross referencing
, or database-driven cross referencing
(available as of SNiFF+ 3.2, and also known as Rapid Reference TechnologyTM). This chapter aims at describing and contrasting these two systems (referred to in the following as RAM-based
and DB-driven
).
In a nutshell, the RAM-based solution loads a set of indexed files to memory to resolve X-Ref queries, whereas the DB-driven solution directly accesses a database.
However, because X-Ref information is stored at Working Environment level under DB-driven cross referencing, this technology has a number of implications for Working Environments administration in team projects.
Which cross reference engine is used therefore determines not only how X-Ref information is generated, stored, and subsequently accessed to resolve queries, but also influences Project and Working Environment administration. As well as performance and scalability.
Furthermore, the procedure for managing cross reference information differs between C/C++ and other languages, e.g. Java.
All these factors are outlined in the following.