Megosztás a következőn keresztül:


Tömbök (RPC)

Számos tömbkategória definiálva van a teljesítmény jellemzői alapján, elsősorban azt, hogy a tömb blokkmásolható-e.

Bizonyos kategóriák, például rögzített méretű tömbök esetében kétféle tömbleíró létezik; a vezető FC-jogkivonat nevében egy beépített javítás jelzi őket.

Karakter formázása Leírás
SM A típus teljes mérete egy 16 bites aláíratlan intben jeleníthető meg.
LG A típus teljes méretének 32 bites, aláíratlan hosszúnak kell lennie.

 

Tömbökhöz gyakran használt mezők:

  • total_size

    A tömb teljes mérete a memóriában bájtban. Ez megegyezik az igazítás után a vezeték méretével. A rendszer kiszámítja a teljes méretet azokra a kategóriákra, amelyeknél a kitöltési probléma nem létezik, és a méret tényleges tömbméret.

  • element_size

    A tömb egyetlen elemének teljes mérete a memóriában, beleértve a kitöltést is (ez csak összetett tömbök esetén fordulhat elő).

  • element_description

    A tömbelem típusának leírása.

  • pointer_layout

    További információt a Mutatóelrendezés című témakörben talál.

Rögzített méretű tömbök

A rendszer rögzített méretű tömbformátum-sztringet hoz létre az ismert méretű tömbökhöz, ezért blokkokat másolhat a tárolópufferbe. A két rögzített tömbleíró formátum a következő.

FC_SMFARRAY alignment<1> 
total_size<2> 
[pointer_layout<>]  
element_description<> 
FC_END

és

FC_LGFARRAY alignment<1> 
total_size<4> 
[pointer_layout<>] 
element_description<> 
FC_END

Konformáns tömb

A megfelelő tömbök blokkmásolhatók, ha a tömb mérete ismert.

FC_CARRAY alignment<1>
element_size<2> 
conformance_description<> 
[pointer_layout<>] 
element_description<> 
FC_END

A conformance_description<> korrelációs leíró, és 4 vagy 6 bájtból áll attól függően, hogy /robusztus van-e használva.

Megfelelő változó tömb

A megfelelő változó tömbök blokkmásolással is másolhatók.

FC_CVARRAY alignment<1> 
element_size<2> 
conformance_description<> 
variance_description<>  
[pointer_layout<>] 
element_description<> 
FC_END

A conformance_description<> és a variance_description<> egy korrelációs leíró, és 4 vagy 6 bájtból áll attól függően, hogy /robusztus van-e használva.

Változó tömb

A különböző tömbök a tömb méretétől függően két lehetőség közül választhatnak.

FC_SMVARRAY alignment<1>
total_size<2>  
number_elements<2> 
element_size<2> 
variance_description<> 
[pointer_layout<>] 
element_description<> 
FC_END

FC_LGVARRAY alignment<1>
total_size<4>  
number_elements<4> 
element_size<2> 
variance_description<4>
[pointer_layout<>] 
element_description<> 
FC_END

A variance_description<> korrelációs leíró, és a használt /robusztus függően 4 vagy 6 bájt.

A szerkezetbe ágyazott különböző tömbök esetében a variance_description<> 2> mezője<eltolás a szerkezetben lévő változó tömb helyzetétől a változó mezőhöz viszonyított relatív eltolás. Az eltolás általában a struktúra elejéhez képest van.

Összetett tömbök

Az összetett tömbök olyan tömbök, amelyek olyan elemet használnak, amely megakadályozza a blokkmásolást, ezért további műveletet kell végrehajtani. Ezek az elemek összetettebbé teszik a tömböt:

  • egyszerű típusok: ENUM16, __INT3264 (csak 64 bites platformokon), integrál [tartomány]
  • referencia- és felületmutatók (minden mutató 64 bites platformokon)
  • Szakszervezetek
  • összetett struktúrák (a struktúra összetettségére vonatkozó okok teljes listájáért tekintse meg az Összetett struktúra leírása témakört)
  • [transmit_as], [user_marshal] elemekkel definiált elemek
  • Minden olyan többdimenziós tömb, amelynek legalább egy megfelelő és/vagy változó dimenziója összetett, függetlenül a mögöttes elem típusától.

Az összetett tömb leírása a következő:

FC_BOGUS_ARRAY alignment<1> 
number_of_elements<2> 
conformance_description<> 
variance_description<> 
element_description<> 
FC_END

A number_of_elements<2> mező nulla, ha a tömb megfelelő.

A conformance_description<> és a variance_description<> egy korrelációs leíró, és 4 vagy 6 bájtból áll attól függően, hogy /robusztus van-e használva. Ha a tömb megfelelő és/vagy varianciával rendelkezik, akkor a conformance_description<> és/vagy variance_description<> mező(ek) érvényes leírással rendelkeznek, ellenkező esetben a korrelációs leíró első 4 bájtja 0xFFFFFFFF. A jelölők jelen esetben nullára vannak állítva.