nsIASN1Sequence.idl 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2. *
  3. * This Source Code Form is subject to the terms of the Mozilla Public
  4. * License, v. 2.0. If a copy of the MPL was not distributed with this
  5. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  6. #include "nsISupports.idl"
  7. #include "nsIASN1Object.idl"
  8. interface nsIMutableArray;
  9. /**
  10. * This represents a sequence of ASN.1 objects,
  11. * where ASN.1 is "Abstract Syntax Notation number One".
  12. *
  13. * Overview of how this ASN1 interface is intended to
  14. * work.
  15. *
  16. * First off, the nsIASN1Sequence is any type in ASN1
  17. * that consists of sub-elements (ie SEQUENCE, SET)
  18. * nsIASN1Printable Items are all the other types that
  19. * can be viewed by themselves without interpreting further.
  20. * Examples would include INTEGER, UTF-8 STRING, OID.
  21. * These are not intended to directly reflect the numberous
  22. * types that exist in ASN1, but merely an interface to ease
  23. * producing a tree display the ASN1 structure of any DER
  24. * object.
  25. *
  26. * The additional state information carried in this interface
  27. * makes it fit for being used as the data structure
  28. * when working with visual reprenstation of ASN.1 objects
  29. * in a human user interface, like in a tree widget
  30. * where open/close state of nodes must be remembered.
  31. */
  32. [scriptable, uuid(b6b957e6-1dd1-11b2-89d7-e30624f50b00)]
  33. interface nsIASN1Sequence : nsIASN1Object {
  34. /**
  35. * The array of objects stored in the sequence.
  36. */
  37. attribute nsIMutableArray ASN1Objects;
  38. /**
  39. * Whether the node at this position in the ASN.1 data structure
  40. * sequence contains sub elements understood by the
  41. * application.
  42. */
  43. attribute boolean isValidContainer;
  44. /**
  45. * Whether the contained objects should be shown or hidden.
  46. * A UI implementation can use this flag to store the current
  47. * expansion state when shown in a tree widget.
  48. */
  49. attribute boolean isExpanded;
  50. };