From 924df6051655ad145eca78e50dff84166b7124f3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 10 Jul 2009 22:15:53 +0100 Subject: [PATCH] Proposal to add BufferIn and RBufferOut types (not implemented). --- src/generator.ml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/generator.ml b/src/generator.ml index 0904afc..a2b40b8 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -84,6 +84,16 @@ and ret = * inefficient. Keys should be unique. NULLs are not permitted. *) | RHashtable of string +(* Not implemented: + (* "RBufferOut" is handled almost exactly like RString, but + * it allows the string to contain arbitrary 8 bit data including + * ASCII NUL. In the C API this causes an implicit extra parameter + * to be added of type . Other programming languages + * support strings with arbitrary 8 bit data. At the RPC layer + * we have to use the opaque<> type instead of string<>. + *) + | RBufferOut of string +*) and args = argt list (* Function parameters, guestfs handle is implicit. *) @@ -110,6 +120,18 @@ and argt = *) | FileIn of string | FileOut of string +(* Not implemented: + (* Opaque buffer which can contain arbitrary 8 bit data. + * In the C API, this is expressed as pair. + * Most other languages have a string type which can contain + * ASCII NUL. We use whatever type is appropriate for each + * language. + * Buffers are limited by the total message size. To transfer + * large blocks of data, use FileIn/FileOut parameters instead. + * To return an arbitrary buffer, use RBufferOut. + *) + | BufferIn of string +*) type flags = | ProtocolLimitWarning (* display warning about protocol size limits *) -- 1.8.3.1