Move StringHandler to its own file
authorDave Watson <davejwatson@fb.com>
Thu, 9 Apr 2015 16:59:36 +0000 (09:59 -0700)
committerViswanath Sivakumar <viswanath@fb.com>
Fri, 10 Apr 2015 03:35:14 +0000 (20:35 -0700)
Summary: Move this from a test to its own file in codec folder

Test Plan:
already has a unittest
fbconfig -r folly/wangle; fbmake runtests

Reviewed By: hans@fb.com

Subscribers: doug, fugalh, folly-diffs@, jsedgwick, yfeldblum, chalfant

FB internal diff: D1959152

Signature: t1:1959152:1427935371:9d1338986df97fd94f98ad2bf08c731d229bc2b1

folly/wangle/codec/StringCodec.h [new file with mode: 0644]
folly/wangle/service/ClientDispatcher.h
folly/wangle/service/ServerDispatcher.h
folly/wangle/service/ServiceTest.cpp

diff --git a/folly/wangle/codec/StringCodec.h b/folly/wangle/codec/StringCodec.h
new file mode 100644 (file)
index 0000000..0f8c96d
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2015 Facebook, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <folly/wangle/channel/ChannelHandler.h>
+
+namespace folly { namespace wangle {
+
+/*
+ * StringCodec converts a pipeline from IOBufs to std::strings.
+ */
+class StringCodec : public ChannelHandler<IOBufQueue&, std::string,
+                                          std::string, std::unique_ptr<IOBuf>> {
+ public:
+  typedef typename ChannelHandler<
+   IOBufQueue&, std::string,
+   std::string, std::unique_ptr<IOBuf>>::Context Context;
+
+  void read(Context* ctx, IOBufQueue& q) override {
+    auto buf = q.pop_front();
+    buf->coalesce();
+    std::string data((const char*)buf->data(), buf->length());
+
+    ctx->fireRead(data);
+  }
+
+  Future<void> write(Context* ctx, std::string msg) override {
+    auto buf = IOBuf::copyBuffer(msg.data(), msg.length());
+    return ctx->fireWrite(std::move(buf));
+  }
+};
+
+}} // namespace
index a42a74f451b49f259c97921d8539406d51a4ca23..f0a5e89ce263a2a98f21cc73cc5f4121a434f221 100644 (file)
@@ -16,6 +16,7 @@
 #pragma once
 
 #include <folly/wangle/channel/ChannelHandler.h>
+#include <folly/wangle/service/Service.h>
 
 namespace folly { namespace wangle {
 
index 7ec3a4dcc6144314e6729605ec8c0b9127768c48..8152dc60d861b368d7efe3f38447438ecf4662e3 100644 (file)
@@ -16,6 +16,7 @@
 #pragma once
 
 #include <folly/wangle/channel/ChannelHandler.h>
+#include <folly/wangle/service/Service.h>
 
 namespace folly { namespace wangle {
 
index 8c1c8314fa7374b133df300a862457469a36c288..843f80d0df1e75d1d1bd171737ce239eb62e298b 100644 (file)
  */
 #include <gtest/gtest.h>
 
-#include <folly/wangle/service/Service.h>
-#include <folly/wangle/service/ServerDispatcher.h>
+#include <folly/wangle/codec/StringCodec.h>
 #include <folly/wangle/service/ClientDispatcher.h>
+#include <folly/wangle/service/ServerDispatcher.h>
+#include <folly/wangle/service/Service.h>
 
 namespace folly {
 
@@ -39,27 +40,6 @@ class EchoIntService : public Service<std::string, int> {
   }
 };
 
-class StringCodec : public ChannelHandler<IOBufQueue&, std::string,
-                                          std::string, std::unique_ptr<IOBuf>> {
- public:
-  typedef typename ChannelHandler<
-   IOBufQueue&, std::string,
-   std::string, std::unique_ptr<IOBuf>>::Context Context;
-
-  void read(Context* ctx, IOBufQueue& q) override {
-    auto buf = q.pop_front();
-    buf->coalesce();
-    std::string data((const char*)buf->data(), buf->length());
-
-    ctx->fireRead(data);
-  }
-
-  Future<void> write(Context* ctx, std::string msg) override {
-    auto buf = IOBuf::copyBuffer(msg.data(), msg.length());
-    return ctx->fireWrite(std::move(buf));
-  }
-};
-
 template <typename Req, typename Resp>
 class ServerPipelineFactory
     : public PipelineFactory<Pipeline> {