ipc/glue/nsIIPCSerializableInputStream.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     3  * You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #ifndef mozilla_ipc_nsIIPCSerializableInputStream_h
     6 #define mozilla_ipc_nsIIPCSerializableInputStream_h
     8 #include "nsISupports.h"
     9 #include "mozilla/Attributes.h"
    11 struct nsTArrayDefaultAllocator;
    12 template <class> class nsTArray;
    14 namespace mozilla {
    15 namespace ipc {
    17 class FileDescriptor;
    18 class InputStreamParams;
    20 } // namespace ipc
    21 } // namespace mozilla
    23 #define NS_IIPCSERIALIZABLEINPUTSTREAM_IID \
    24   {0xb0211b14, 0xea6d, 0x40d4, {0x87, 0xb5, 0x7b, 0xe3, 0xdf, 0xac, 0x09, 0xd1}}
    26 class NS_NO_VTABLE nsIIPCSerializableInputStream : public nsISupports
    27 {
    28 public:
    29   typedef nsTArray<mozilla::ipc::FileDescriptor>
    30           FileDescriptorArray;
    32   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIPCSERIALIZABLEINPUTSTREAM_IID)
    34   virtual void
    35   Serialize(mozilla::ipc::InputStreamParams& aParams,
    36             FileDescriptorArray& aFileDescriptors) = 0;
    38   virtual bool
    39   Deserialize(const mozilla::ipc::InputStreamParams& aParams,
    40               const FileDescriptorArray& aFileDescriptors) = 0;
    41 };
    43 NS_DEFINE_STATIC_IID_ACCESSOR(nsIIPCSerializableInputStream,
    44                               NS_IIPCSERIALIZABLEINPUTSTREAM_IID)
    46 #define NS_DECL_NSIIPCSERIALIZABLEINPUTSTREAM                                  \
    47   virtual void                                                                 \
    48   Serialize(mozilla::ipc::InputStreamParams&,                                  \
    49             FileDescriptorArray&) MOZ_OVERRIDE;                                \
    50                                                                                \
    51   virtual bool                                                                 \
    52   Deserialize(const mozilla::ipc::InputStreamParams&,                          \
    53               const FileDescriptorArray&) MOZ_OVERRIDE;
    55 #define NS_FORWARD_NSIIPCSERIALIZABLEINPUTSTREAM(_to)                          \
    56   virtual void                                                                 \
    57   Serialize(mozilla::ipc::InputStreamParams& aParams,                          \
    58             FileDescriptorArray& aFileDescriptors) MOZ_OVERRIDE                \
    59   {                                                                            \
    60     _to Serialize(aParams, aFileDescriptors);                                  \
    61   }                                                                            \
    62                                                                                \
    63   virtual bool                                                                 \
    64   Deserialize(const mozilla::ipc::InputStreamParams& aParams,                  \
    65               const FileDescriptorArray& aFileDescriptors) MOZ_OVERRIDE        \
    66   {                                                                            \
    67     return _to Deserialize(aParams, aFileDescriptors);                         \
    68   }
    70 #define NS_FORWARD_SAFE_NSIIPCSERIALIZABLEINPUTSTREAM(_to)                     \
    71   virtual void                                                                 \
    72   Serialize(mozilla::ipc::InputStreamParams& aParams,                          \
    73             FileDescriptorArray& aFileDescriptors) MOZ_OVERRIDE                \
    74   {                                                                            \
    75     if (_to) {                                                                 \
    76       _to->Serialize(aParams, aFileDescriptors);                               \
    77     }                                                                          \
    78   }                                                                            \
    79                                                                                \
    80   virtual bool                                                                 \
    81   Deserialize(const mozilla::ipc::InputStreamParams& aParams,                  \
    82               const FileDescriptorArray& aFileDescriptors) MOZ_OVERRIDE        \
    83   {                                                                            \
    84     return _to ? _to->Deserialize(aParams, aFileDescriptors) : false;          \
    85   }
    87 #endif // mozilla_ipc_nsIIPCSerializableInputStream_h

mercurial