/* -*- 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 URIParams; //FIXME: bug #792908 (NeckoChannelParams already included by PNecko) include NeckoChannelParams; 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 async __delete__(); async Cancel(nsresult status); async Suspend(); async Resume(); // Divert OnDataAvailable to the parent. async DivertOnDataAvailable(nsCString data, uint64_t offset, uint32_t count); // Divert OnStopRequest to the parent. async DivertOnStopRequest(nsresult statusCode); // Child has no more events/messages to divert to the parent. async DivertComplete(); child: async OnStartRequest(nsresult aChannelStatus, int64_t aContentLength, nsCString aContentType, PRTime aLastModified, nsCString aEntityID, URIParams aURI); async OnDataAvailable(nsresult channelStatus, nsCString data, uint64_t offset, uint32_t count); async OnStopRequest(nsresult channelStatus, nsCString aErrorMsg, bool aUseUTF8); async FailedAsyncOpen(nsresult statusCode); // Parent has been suspended for diversion; no more events to be enqueued. async FlushedForDiversion(); // Child should resume processing the ChannelEventQueue, i.e. diverting any // OnDataAvailable and OnStopRequest messages in the queue back to the parent. async DivertMessages(); async DeleteSelf(); }; } // namespace net } // namespace mozilla