/* -*- 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