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.