1 /* 2 * Copyright 2014 Google Inc. All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include "bar_handler.h" 18 19 #include <iostream> 20 21 using namespace std; 22 using namespace fruit; 23 24 class BarHandlerImpl : public BarHandler { 25 private: 26 const Request& request; 27 const ServerContext& serverContext; 28 29 public: 30 INJECT(BarHandlerImpl(const Request& request, const ServerContext& serverContext)) 31 : request(request), serverContext(serverContext) {} 32 33 void handleRequest() override { 34 cout << "BarHandler handling request on server started at " << serverContext.startupTime 35 << " for path: " << request.path << endl; 36 } 37 }; 38 39 Component<Required<Request, ServerContext>, BarHandler> getBarHandlerComponent() { 40 return fruit::createComponent().bind<BarHandler, BarHandlerImpl>(); 41 } 42