| Index: trunk/src/mojo/examples/content_handler_demo/content_handler_demo.cc
|
| ===================================================================
|
| --- trunk/src/mojo/examples/content_handler_demo/content_handler_demo.cc (revision 288042)
|
| +++ trunk/src/mojo/examples/content_handler_demo/content_handler_demo.cc (working copy)
|
| @@ -1,89 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include <stdio.h>
|
| -
|
| -#include "mojo/public/cpp/application/application_delegate.h"
|
| -#include "mojo/public/cpp/application/application_impl.h"
|
| -#include "mojo/public/cpp/application/interface_factory_impl.h"
|
| -#include "mojo/services/public/interfaces/content_handler/content_handler.mojom.h"
|
| -
|
| -namespace mojo {
|
| -namespace examples {
|
| -
|
| -class ContentHandlerApp;
|
| -
|
| -class ContentHandlerImpl : public InterfaceImpl<ContentHandler> {
|
| - public:
|
| - explicit ContentHandlerImpl(ContentHandlerApp* content_handler_app)
|
| - : content_handler_app_(content_handler_app) {
|
| - }
|
| - virtual ~ContentHandlerImpl() {}
|
| -
|
| - private:
|
| - virtual void OnConnect(const mojo::String& url,
|
| - URLResponsePtr content,
|
| - ServiceProviderPtr service_provider) MOJO_OVERRIDE;
|
| -
|
| - ContentHandlerApp* content_handler_app_;
|
| -};
|
| -
|
| -class ContentHandlerApp : public ApplicationDelegate {
|
| - public:
|
| - ContentHandlerApp() : content_handler_factory_(this) {
|
| - }
|
| -
|
| - virtual void Initialize(ApplicationImpl* app) MOJO_OVERRIDE {
|
| - }
|
| -
|
| - virtual bool ConfigureIncomingConnection(ApplicationConnection* connection)
|
| - MOJO_OVERRIDE {
|
| - connection->AddService(&content_handler_factory_);
|
| - return true;
|
| - }
|
| -
|
| - void PrintResponse(ScopedDataPipeConsumerHandle body) const {
|
| - for (;;) {
|
| - char buf[512];
|
| - uint32_t num_bytes = sizeof(buf);
|
| - MojoResult result = ReadDataRaw(body.get(), buf, &num_bytes,
|
| - MOJO_READ_DATA_FLAG_NONE);
|
| - if (result == MOJO_RESULT_SHOULD_WAIT) {
|
| - Wait(body.get(),
|
| - MOJO_HANDLE_SIGNAL_READABLE,
|
| - MOJO_DEADLINE_INDEFINITE);
|
| - } else if (result == MOJO_RESULT_OK) {
|
| - if (fwrite(buf, num_bytes, 1, stdout) != 1) {
|
| - printf("\nUnexpected error writing to file\n");
|
| - break;
|
| - }
|
| - } else {
|
| - break;
|
| - }
|
| -
|
| - printf("\n>>> EOF <<<\n");
|
| - }
|
| - }
|
| -
|
| - private:
|
| - InterfaceFactoryImplWithContext<ContentHandlerImpl,
|
| - ContentHandlerApp> content_handler_factory_;
|
| -};
|
| -
|
| -void ContentHandlerImpl::OnConnect(const mojo::String& url,
|
| - URLResponsePtr content,
|
| - ServiceProviderPtr service_provider) {
|
| - printf("ContentHandler::OnConnect - url:%s - body follows\n\n",
|
| - url.To<std::string>().c_str());
|
| - content_handler_app_->PrintResponse(content->body.Pass());
|
| -}
|
| -
|
| -} // namespace examples
|
| -
|
| -// static
|
| -ApplicationDelegate* ApplicationDelegate::Create() {
|
| - return new examples::ContentHandlerApp();
|
| -}
|
| -
|
| -} // namespace mojo
|
|
|