netwerk/protocol/ftp/PFTPChannel.ipdl
author B2G Bumper Bot <release+b2gbumper@mozilla.com>
Mon, 04 Jan 2016 02:25:30 -0800
changeset 238867 d8847129d134d904bf49f876926bca47ee160335
parent 177318 32c1e7286364c11a5b3246b9b347eb8dd6366ec9
permissions -rw-r--r--
Bumping manifests a=b2g-bump

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set sw=2 ts=8 et tw=80 ft=cpp : */

/* 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 protocol PNecko;
include InputStreamParams;
include URIParams;

//FIXME: bug #792908 (NeckoChannelParams already included by PNecko)
include NeckoChannelParams;
include protocol PBlob; //FIXME: bug #792908

using PRTime from "prtime.h";

namespace mozilla {
namespace net {

async protocol PFTPChannel
{
  manager PNecko;

parent:
  // Note: channels are opened during construction, so no open method here:
  // see PNecko.ipdl

  __delete__();

  Cancel(nsresult status);
  Suspend();
  Resume();

  // Divert OnDataAvailable to the parent.
  DivertOnDataAvailable(nsCString data,
                        uint64_t  offset,
                        uint32_t  count);

  // Divert OnStopRequest to the parent.
  DivertOnStopRequest(nsresult statusCode);

  // Child has no more events/messages to divert to the parent.
  DivertComplete();

child:
  OnStartRequest(nsresult aChannelStatus,
                 int64_t aContentLength,
                 nsCString aContentType,
                 PRTime aLastModified,
                 nsCString aEntityID,
                 URIParams aURI);
  OnDataAvailable(nsresult channelStatus,
                  nsCString data,
                  uint64_t offset,
                  uint32_t count);
  OnStopRequest(nsresult channelStatus);
  FailedAsyncOpen(nsresult statusCode);

  // Parent has been suspended for diversion; no more events to be enqueued.
  FlushedForDiversion();

  // Child should resume processing the ChannelEventQueue, i.e. diverting any
  // OnDataAvailable and OnStopRequest messages in the queue back to the parent.
  DivertMessages();

  DeleteSelf();
};

} // namespace net
} // namespace mozilla