Attributo user_marshal
L'attributo [ user_marshal] è un attributo di tipo ACF simile alla sintassi [ represent_as]. Come per l'attributo IDL, [ wire_marshal], offre un modo più efficiente per eseguire il marshalling dei dati in una rete. Come attributo ACF, [user_marshal] consente di eseguire il marshalling dei tipi di dati personalizzati sconosciuti a MIDL. Ogni tipo specifico dell'applicazione ha un tipo trasmessobile corrispondente che definisce la rappresentazione del filo.
Il tipo specifico dell'applicazione può essere un tipo semplice, composito o puntatore. La restrizione principale è che l'istanza di tipo deve avere una dimensione di memoria fissa e ben definita. Se le dimensioni dell'istanza del tipo devono cambiare, usare un campo puntatore anziché una matrice conforme. In alternativa, è possibile definire un puntatore al tipo modificabile.
Come con l'attributo [wire_marshal] , si forniscono routine per il ridimensionamento, il marshalling, l'annullamento delmarshaling e i passaggi di liberamento. La tabella seguente descrive i quattro nomi di routine forniti dall'utente. Il <tipo è il tipo> userm specificato nella definizione di tipo[user_marshal] .
Routine | Descrizione |
---|---|
<tipo>_UserSize | Ridimensiona il buffer di dati RPC prima del marshalling sul lato client o server. |
<tipo>_UserMarshal | Esegue il marshalling dei dati sul lato client o server. |
<tipo>_UserUnmarshal | Annulla il trasferimento dei dati sul lato client o server. |
<tipo>_UserFree | Libera i dati sul lato server. |
Queste routine fornite dall'utente vengono fornite dal client o dall'applicazione server, in base agli attributi direzionali.
Se il parametro è [ in] solo, il client trasmette al server. Il client necessita del <tipo_UserSize e del tipo>>_UserMarshal funzioni.< Il server necessita del <tipo_UserUnmarshal e del tipo>>_UserFree funzioni.<
Per un parametro [ out]only, il server trasmette al client. Il server necessita del <tipo_UserSize e del tipo>>_UserMarshal funzioni, mentre il client necessita del tipo_UserMarshal funzione.<<>
Argomenti correlati