Does Gen "High Performance View Passing" (HPVP) apply to Java and .NET (C#)
search cancel

Does Gen "High Performance View Passing" (HPVP) apply to Java and .NET (C#)

book

Article ID: 14363

calendar_today

Updated On:

Products

Gen Gen - Workstation Toolset

Issue/Introduction

From the Gen 8.6 documentation section Properties for Action Diagram/Operation:

*****
High Performance View Passing

This option makes it possible to efficiently pass data between action blocks. The High Performance View Passing feature is available for process action diagrams and action blocks. The feature is not available for derived algorithm action blocks and procedure action diagrams.
Selecting this feature enables the action block to be called as externals by another model.
High Performance View Passing is the default value for action blocks and process action blocks created using COOL:Gen version 3.0 and higher.
...

*****

In addition to COBOL and C, does "High Performance View Passing" (HPVP) also apply to Java and .NET (C#) generated code?

Environment

Release: 6.x 7.x, 8.x
Gen Workstation

Resolution

HPVP is only applicable for COBOL and C code generation per the following explanation:

When HPVP is disabled: 

  • Copies are made of the Used Action Block views. 
  • Prior to calling the Used Action Block, the Using Action Block's views are moved to those copies. The copies are then passed on the actual call statement. 
  • After returning from the Used Action Block, the copies are moved back to the Using Action Block's views. 

When HPVP is enabled (and the views match exactly): 

  • It is not necessary to make copies of the Used Action Block views because a reference can be passed to the Using Action Block views themselves.

HPVP works for COBOL and C because both Action Block views can be represented by the same view structure. However Gen Java and C# generated applications are designed such that each Action Block has its own separate view classes, so the same view cannot be shared between two different Action Blocks. Therefore even if two Action Block views match exactly, they are actually different view objects and cannot be shared