rap: add rap_NetPrintQGetInfo to IDL.
authorGünther Deschner <gd@samba.org>
Thu, 29 Apr 2010 10:16:17 +0000 (12:16 +0200)
committerGünther Deschner <gd@samba.org>
Thu, 29 Apr 2010 11:47:33 +0000 (13:47 +0200)
Guenther

librpc/gen_ndr/ndr_rap.c
librpc/gen_ndr/ndr_rap.h
librpc/gen_ndr/rap.h
librpc/idl/rap.idl

index c6a51954f2059ca55ecaef5e0ee71527676fb4ca..97a530d6e849da24fa777f5f142a0b4c654044e9 100644 (file)
@@ -2018,3 +2018,81 @@ _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintQEnum(struct ndr_pull *ndr, int
        return NDR_ERR_SUCCESS;
 }
 
+_PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintQGetInfo(struct ndr_push *ndr, int flags, const struct rap_NetPrintQGetInfo *r)
+{
+       if (flags & NDR_IN) {
+               if (r->in.PrintQueueName == NULL) {
+                       return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+               }
+               NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.PrintQueueName, CH_DOS)));
+               NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.PrintQueueName, CH_DOS)));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.PrintQueueName, ndr_charset_length(r->in.PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info, r->in.level));
+               NDR_CHECK(ndr_push_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintQGetInfo(struct ndr_pull *ndr, int flags, struct rap_NetPrintQGetInfo *r)
+{
+       if (flags & NDR_IN) {
+               ZERO_STRUCT(r->out);
+
+               NDR_CHECK(ndr_pull_array_size(ndr, &r->in.PrintQueueName));
+               NDR_CHECK(ndr_pull_array_length(ndr, &r->in.PrintQueueName));
+               if (ndr_get_array_length(ndr, &r->in.PrintQueueName) > ndr_get_array_size(ndr, &r->in.PrintQueueName)) {
+                       return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.PrintQueueName), ndr_get_array_length(ndr, &r->in.PrintQueueName));
+               }
+               NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.PrintQueueName), sizeof(uint8_t)));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.PrintQueueName, ndr_get_array_length(ndr, &r->in.PrintQueueName), sizeof(uint8_t), CH_DOS));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
+       }
+       if (flags & NDR_OUT) {
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info, r->in.level));
+               NDR_CHECK(ndr_pull_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_NetPrintQGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintQGetInfo *r)
+{
+       ndr_print_struct(ndr, name, "rap_NetPrintQGetInfo");
+       ndr->depth++;
+       if (flags & NDR_SET_VALUES) {
+               ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+       }
+       if (flags & NDR_IN) {
+               ndr_print_struct(ndr, "in", "rap_NetPrintQGetInfo");
+               ndr->depth++;
+               ndr_print_ptr(ndr, "PrintQueueName", r->in.PrintQueueName);
+               ndr->depth++;
+               ndr_print_string(ndr, "PrintQueueName", r->in.PrintQueueName);
+               ndr->depth--;
+               ndr_print_uint16(ndr, "level", r->in.level);
+               ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
+               ndr->depth--;
+       }
+       if (flags & NDR_OUT) {
+               ndr_print_struct(ndr, "out", "rap_NetPrintQGetInfo");
+               ndr->depth++;
+               ndr_print_uint16(ndr, "status", r->out.status);
+               ndr_print_uint16(ndr, "convert", r->out.convert);
+               ndr_print_uint16(ndr, "available", r->out.available);
+               ndr_print_set_switch_value(ndr, &r->out.info, r->in.level);
+               ndr_print_rap_printq_info(ndr, "info", &r->out.info);
+               ndr->depth--;
+       }
+       ndr->depth--;
+}
index f940d0e0d7c803806e55e2fdc865715a7a949740..b4bce71b4e3f0d048d4d206c097fa006ec8e9651 100644 (file)
@@ -15,7 +15,9 @@
 
 #define NDR_RAP_NETPRINTQENUM (0x03)
 
-#define NDR_RAP_CALL_COUNT (4)
+#define NDR_RAP_NETPRINTQGETINFO (0x04)
+
+#define NDR_RAP_CALL_COUNT (5)
 void ndr_print_rap_share_info_0(struct ndr_print *ndr, const char *name, const struct rap_share_info_0 *r);
 void ndr_print_rap_share_info_1(struct ndr_print *ndr, const char *name, const struct rap_share_info_1 *r);
 void ndr_print_rap_share_info_2(struct ndr_print *ndr, const char *name, const struct rap_share_info_2 *r);
@@ -49,4 +51,7 @@ void ndr_print_rap_WserverGetInfo(struct ndr_print *ndr, const char *name, int f
 enum ndr_err_code ndr_push_rap_NetPrintQEnum(struct ndr_push *ndr, int flags, const struct rap_NetPrintQEnum *r);
 enum ndr_err_code ndr_pull_rap_NetPrintQEnum(struct ndr_pull *ndr, int flags, struct rap_NetPrintQEnum *r);
 void ndr_print_rap_NetPrintQEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintQEnum *r);
+enum ndr_err_code ndr_push_rap_NetPrintQGetInfo(struct ndr_push *ndr, int flags, const struct rap_NetPrintQGetInfo *r);
+enum ndr_err_code ndr_pull_rap_NetPrintQGetInfo(struct ndr_pull *ndr, int flags, struct rap_NetPrintQGetInfo *r);
+void ndr_print_rap_NetPrintQGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintQGetInfo *r);
 #endif /* _HEADER_NDR_rap */
index 68a12738e7b609f2f976760743d3f54552ea392d..78cae37d0028165033ea55ad0305b3d5a74bd605 100644 (file)
@@ -660,4 +660,21 @@ struct rap_NetPrintQEnum {
 
 };
 
+
+struct rap_NetPrintQGetInfo {
+       struct {
+               const char *PrintQueueName;/* [ref,charset(DOS)] */
+               uint16_t level;
+               uint16_t bufsize;
+       } in;
+
+       struct {
+               uint16_t status;
+               uint16_t convert;
+               uint16_t available;
+               union rap_printq_info info;/* [switch_is(level)] */
+       } out;
+
+};
+
 #endif /* _HEADER_rap */
index c35dcd754e4a4fdd565a7258239fa2a944ac02dd..db65308048da34aca9d3144a0b9a0a07558efcf2 100644 (file)
@@ -554,6 +554,16 @@ interface rap
                [out,switch_is(level)] rap_printq_info *info
        );
 
+       [public] void rap_NetPrintQGetInfo(
+               [in] [string,charset(DOS)] uint8 *PrintQueueName,
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [out] uint16 status,
+               [out] uint16 convert,
+               [out] uint16 available,
+               [out,switch_is(level)] rap_printq_info info
+       );
+
        /* Parameter description strings for RAP calls   */
        /* Names are defined name for RAP call with _REQ */
        /* appended to end.                              */