summaryrefslogtreecommitdiffstats
path: root/ldap/xpcom/public/nsILDAPBERValue.idl
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/xpcom/public/nsILDAPBERValue.idl')
-rw-r--r--ldap/xpcom/public/nsILDAPBERValue.idl44
1 files changed, 44 insertions, 0 deletions
diff --git a/ldap/xpcom/public/nsILDAPBERValue.idl b/ldap/xpcom/public/nsILDAPBERValue.idl
new file mode 100644
index 000000000..da918d639
--- /dev/null
+++ b/ldap/xpcom/public/nsILDAPBERValue.idl
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsISupports.idl"
+
+/**
+ * Representation of a BER value as an interface containing an array of
+ * bytes. Someday this should perhaps be obsoleted by a better, more
+ * generalized version of nsIByteBuffer, but that's currently not even
+ * scriptable (see bug 125596).
+ */
+[scriptable, uuid(c817c5fe-1dd1-11b2-a10b-ae9885762ea9)]
+interface nsILDAPBERValue : nsISupports
+{
+ /**
+ * Set the BER value from an array of bytes (copies).
+ *
+ * @exception NS_ERROR_OUT_OF_MEMORY couldn't allocate buffer to copy to
+ */
+ void set(in unsigned long aCount,
+ [array, size_is(aCount)] in octet aValue);
+
+ /**
+ * Set the BER value from a UTF8 string (copies).
+ *
+ * @exception NS_ERROR_OUT_OF_MEMORY couldn't allocate buffer to copy to
+ */
+ void setFromUTF8(in AUTF8String aValue);
+
+ /**
+ * Get the BER value as an array of bytes. Note that if this value is
+ * zero-length, aCount and aRetVal will both be 0. This means that
+ * (in C++ anyway) the caller MUST test either aCount or aRetval before
+ * dereferencing aRetVal.
+ *
+ * @exception NS_ERROR_OUT_OF_MEMORY couldn't allocate buffer to copy to
+ */
+ void get(out unsigned long aCount,
+ [retval, array, size_is(aCount)] out octet aRetVal);
+};
+