You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by vo...@apache.org on 2017/09/04 06:44:51 UTC

[17/17] incubator-rocketmq-externals git commit: Polish cpp module

Polish cpp module


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/commit/b9bb6cfa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/tree/b9bb6cfa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/diff/b9bb6cfa

Branch: refs/heads/master
Commit: b9bb6cfa7a37b3a544ee8ddaa715d8b2d4cba70a
Parents: 70ce5c7
Author: vongosling <vo...@apache.org>
Authored: Mon Sep 4 14:44:26 2017 +0800
Committer: vongosling <vo...@apache.org>
Committed: Mon Sep 4 14:44:26 2017 +0800

----------------------------------------------------------------------
 rocketmq-beam/LICENSE                           |  201 --
 rocketmq-beam/NOTICE                            |    5 -
 rocketmq-client4cpp/.gitignore                  |   30 -
 rocketmq-client4cpp/LICENSE                     |  201 --
 rocketmq-client4cpp/Makefile                    |    5 -
 rocketmq-client4cpp/NOTICE                      |    5 -
 rocketmq-client4cpp/README.md                   |   21 -
 rocketmq-client4cpp/build.sh                    |   38 -
 rocketmq-client4cpp/clean.sh                    |    7 -
 rocketmq-client4cpp/docs/roadmap.md             |    0
 rocketmq-client4cpp/example/Makefile            |    5 -
 .../example/demo/AsyncProducer.cpp              |  249 ---
 rocketmq-client4cpp/example/demo/Common.cpp     |   20 -
 rocketmq-client4cpp/example/demo/Common.h       |  162 --
 rocketmq-client4cpp/example/demo/Makefile       |   40 -
 rocketmq-client4cpp/example/demo/Producer.cpp   |  199 --
 .../example/demo/PullConsumer.cpp               |  194 --
 .../example/demo/PushConsumer.cpp               |  256 ---
 .../include/AllocateMessageQueueStrategy.h      |   54 -
 rocketmq-client4cpp/include/ClientConfig.h      |   75 -
 .../include/ConsumeMessageHook.h                |   45 -
 rocketmq-client4cpp/include/ConsumeType.h       |   56 -
 rocketmq-client4cpp/include/DefaultMQProducer.h |  129 --
 .../include/DefaultMQPullConsumer.h             |  154 --
 .../include/DefaultMQPushConsumer.h             |  181 --
 rocketmq-client4cpp/include/MQAdmin.h           |   66 -
 rocketmq-client4cpp/include/MQClientException.h |  105 -
 rocketmq-client4cpp/include/MQConsumer.h        |   48 -
 rocketmq-client4cpp/include/MQProducer.h        |   71 -
 rocketmq-client4cpp/include/MQPullConsumer.h    |   54 -
 rocketmq-client4cpp/include/MQPushConsumer.h    |   49 -
 rocketmq-client4cpp/include/Message.h           |  136 --
 rocketmq-client4cpp/include/MessageExt.h        |  108 -
 rocketmq-client4cpp/include/MessageListener.h   |   94 -
 rocketmq-client4cpp/include/MessageQueue.h      |   70 -
 .../include/MessageQueueListener.h              |   38 -
 rocketmq-client4cpp/include/OffsetStore.h       |   58 -
 rocketmq-client4cpp/include/PullCallback.h      |   39 -
 rocketmq-client4cpp/include/PullResult.h        |   91 -
 rocketmq-client4cpp/include/QueryResult.h       |   56 -
 rocketmq-client4cpp/include/RocketMQClient.h    |  100 -
 rocketmq-client4cpp/include/SendCallback.h      |   39 -
 rocketmq-client4cpp/include/SendMessageHook.h   |   50 -
 rocketmq-client4cpp/include/SendResult.h        |   89 -
 rocketmq-client4cpp/include/TopicFilterType.h   |   32 -
 rocketmq-client4cpp/rocketmq.mk                 |    6 -
 rocketmq-client4cpp/src/ClientConfig.cpp        |  168 --
 .../src/ClientRemotingProcessor.cpp             |  154 --
 .../src/ClientRemotingProcessor.h               |   45 -
 rocketmq-client4cpp/src/CommunicationMode.h     |   34 -
 rocketmq-client4cpp/src/FindBrokerResult.h      |   28 -
 rocketmq-client4cpp/src/MQAdminImpl.cpp         |  295 ---
 rocketmq-client4cpp/src/MQAdminImpl.h           |   63 -
 rocketmq-client4cpp/src/MQClientAPIImpl.cpp     | 1323 ------------
 rocketmq-client4cpp/src/MQClientAPIImpl.h       |  280 ---
 rocketmq-client4cpp/src/MQClientFactory.cpp     | 1258 -----------
 rocketmq-client4cpp/src/MQClientFactory.h       |  214 --
 rocketmq-client4cpp/src/MQClientManager.cpp     |   75 -
 rocketmq-client4cpp/src/MQClientManager.h       |   49 -
 rocketmq-client4cpp/src/Makefile                |   26 -
 rocketmq-client4cpp/src/Makefile.std            |  127 --
 rocketmq-client4cpp/src/RocketMQClient.cpp      |  186 --
 rocketmq-client4cpp/src/common/ConsumeStats.h   |   95 -
 rocketmq-client4cpp/src/common/FilterAPI.h      |   72 -
 rocketmq-client4cpp/src/common/MQVersion.cpp    |   88 -
 rocketmq-client4cpp/src/common/MQVersion.h      |  184 --
 .../src/common/MessageSysFlag.cpp               |   47 -
 rocketmq-client4cpp/src/common/MessageSysFlag.h |   46 -
 rocketmq-client4cpp/src/common/MixAll.cpp       |   88 -
 rocketmq-client4cpp/src/common/MixAll.h         |   62 -
 rocketmq-client4cpp/src/common/NamesrvConfig.h  |   72 -
 rocketmq-client4cpp/src/common/NamesrvUtil.h    |   29 -
 rocketmq-client4cpp/src/common/PermName.cpp     |   63 -
 rocketmq-client4cpp/src/common/PermName.h       |   39 -
 rocketmq-client4cpp/src/common/PullSysFlag.cpp  |   68 -
 rocketmq-client4cpp/src/common/PullSysFlag.h    |   38 -
 rocketmq-client4cpp/src/common/SendResult.cpp   |  132 --
 rocketmq-client4cpp/src/common/ServiceState.h   |   31 -
 .../src/common/ServiceThread.cpp                |   73 -
 rocketmq-client4cpp/src/common/ServiceThread.h  |   50 -
 .../src/common/SubscriptionGroupConfig.h        |   50 -
 rocketmq-client4cpp/src/common/TopAddressing.h  |   54 -
 rocketmq-client4cpp/src/common/TopicConfig.cpp  |  167 --
 rocketmq-client4cpp/src/common/TopicConfig.h    |   71 -
 .../src/common/TopicStatsTable.h                |   51 -
 rocketmq-client4cpp/src/common/UtilAll.h        |  608 ------
 rocketmq-client4cpp/src/common/Validators.cpp   |  132 --
 rocketmq-client4cpp/src/common/Validators.h     |   49 -
 .../src/common/VirtualEnvUtil.cpp               |   66 -
 rocketmq-client4cpp/src/common/VirtualEnvUtil.h |   41 -
 .../AllocateMessageQueueStrategyInner.h         |  205 --
 .../ConsumeMessageConcurrentlyService.cpp       |  476 ----
 .../ConsumeMessageConcurrentlyService.h         |  120 -
 .../consumer/ConsumeMessageOrderlyService.cpp   |  574 -----
 .../src/consumer/ConsumeMessageOrderlyService.h |  122 --
 .../src/consumer/ConsumeMessageService.h        |   41 -
 .../src/consumer/ConsumeType.cpp                |   70 -
 .../src/consumer/ConsumerInvokeCallback.cpp     |   96 -
 .../src/consumer/ConsumerInvokeCallback.h       |   40 -
 .../src/consumer/ConsumerStatManage.h           |  132 --
 .../src/consumer/DefaultMQPullConsumer.cpp      |  309 ---
 .../src/consumer/DefaultMQPullConsumerImpl.cpp  |  630 ------
 .../src/consumer/DefaultMQPullConsumerImpl.h    |  174 --
 .../src/consumer/DefaultMQPushConsumer.cpp      |  399 ----
 .../src/consumer/DefaultMQPushConsumerImpl.cpp  | 1018 ---------
 .../src/consumer/DefaultMQPushConsumerImpl.h    |  169 --
 .../src/consumer/LocalFileOffsetStore.cpp       |  257 ---
 .../src/consumer/LocalFileOffsetStore.h         |   61 -
 .../src/consumer/MQConsumerInner.h              |   46 -
 .../src/consumer/MessageQueueLock.h             |   68 -
 .../src/consumer/ProcessQueue.cpp               |  445 ----
 rocketmq-client4cpp/src/consumer/ProcessQueue.h |  102 -
 .../src/consumer/PullAPIWrapper.cpp             |  222 --
 .../src/consumer/PullAPIWrapper.h               |   67 -
 .../src/consumer/PullMessageService.cpp         |  171 --
 .../src/consumer/PullMessageService.h           |   56 -
 .../src/consumer/PullRequest.cpp                |  108 -
 rocketmq-client4cpp/src/consumer/PullRequest.h  |   59 -
 .../src/consumer/PullResultExt.h                |   53 -
 .../src/consumer/RebalanceImpl.cpp              |  613 ------
 .../src/consumer/RebalanceImpl.h                |  102 -
 .../src/consumer/RebalancePullImpl.cpp          |   79 -
 .../src/consumer/RebalancePullImpl.h            |   56 -
 .../src/consumer/RebalancePushImpl.cpp          |  217 --
 .../src/consumer/RebalancePushImpl.h            |   55 -
 .../src/consumer/RebalanceService.cpp           |   55 -
 .../src/consumer/RebalanceService.h             |   44 -
 .../src/consumer/RemoteBrokerOffsetStore.cpp    |  266 ---
 .../src/consumer/RemoteBrokerOffsetStore.h      |   61 -
 .../src/consumer/SubscriptionData.cpp           |  201 --
 .../src/consumer/SubscriptionData.h             |   76 -
 rocketmq-client4cpp/src/jsoncpp/AUTHORS         |    0
 rocketmq-client4cpp/src/jsoncpp/LICENSE         |    1 -
 rocketmq-client4cpp/src/jsoncpp/README.txt      |  117 -
 .../src/jsoncpp/json/allocator.h                |   96 -
 .../src/jsoncpp/json/assertions.h               |   54 -
 rocketmq-client4cpp/src/jsoncpp/json/autolink.h |   25 -
 rocketmq-client4cpp/src/jsoncpp/json/config.h   |  182 --
 rocketmq-client4cpp/src/jsoncpp/json/features.h |   59 -
 rocketmq-client4cpp/src/jsoncpp/json/forwards.h |   39 -
 rocketmq-client4cpp/src/jsoncpp/json/json.h     |   15 -
 rocketmq-client4cpp/src/jsoncpp/json/reader.h   |  406 ----
 rocketmq-client4cpp/src/jsoncpp/json/value.h    |  868 --------
 rocketmq-client4cpp/src/jsoncpp/json/version.h  |   20 -
 rocketmq-client4cpp/src/jsoncpp/json/writer.h   |  333 ---
 rocketmq-client4cpp/src/jsoncpp/json_reader.cpp | 2042 ------------------
 rocketmq-client4cpp/src/jsoncpp/json_tool.h     |  113 -
 rocketmq-client4cpp/src/jsoncpp/json_value.cpp  | 1612 --------------
 .../src/jsoncpp/json_valueiterator.inl          |  171 --
 rocketmq-client4cpp/src/jsoncpp/json_writer.cpp | 1220 -----------
 rocketmq-client4cpp/src/jsoncpp/version         |    1 -
 rocketmq-client4cpp/src/kpr/AtomicValue.cpp     |  146 --
 rocketmq-client4cpp/src/kpr/AtomicValue.h       |  200 --
 rocketmq-client4cpp/src/kpr/Condition.cpp       |  158 --
 rocketmq-client4cpp/src/kpr/Condition.h         |   54 -
 rocketmq-client4cpp/src/kpr/Epoller.cpp         |   96 -
 rocketmq-client4cpp/src/kpr/Epoller.h           |   62 -
 rocketmq-client4cpp/src/kpr/Exception.h         |  100 -
 rocketmq-client4cpp/src/kpr/FileUtil.cpp        |  523 -----
 rocketmq-client4cpp/src/kpr/FileUtil.h          |   90 -
 rocketmq-client4cpp/src/kpr/KPRTypes.h          |   65 -
 rocketmq-client4cpp/src/kpr/KPRUtil.cpp         |   76 -
 rocketmq-client4cpp/src/kpr/KPRUtil.h           |   38 -
 rocketmq-client4cpp/src/kpr/Monitor.cpp         |  125 --
 rocketmq-client4cpp/src/kpr/Monitor.h           |   48 -
 rocketmq-client4cpp/src/kpr/Mutex.cpp           |  296 ---
 rocketmq-client4cpp/src/kpr/Mutex.h             |  107 -
 rocketmq-client4cpp/src/kpr/RefHandle.h         |  328 ---
 rocketmq-client4cpp/src/kpr/ScopedLock.h        |   91 -
 rocketmq-client4cpp/src/kpr/Semaphore.cpp       |   73 -
 rocketmq-client4cpp/src/kpr/Semaphore.h         |   42 -
 rocketmq-client4cpp/src/kpr/Thread.cpp          |  191 --
 rocketmq-client4cpp/src/kpr/Thread.h            |   68 -
 rocketmq-client4cpp/src/kpr/ThreadLocal.cpp     |   56 -
 rocketmq-client4cpp/src/kpr/ThreadLocal.h       |   37 -
 rocketmq-client4cpp/src/kpr/ThreadPool.cpp      |  418 ----
 rocketmq-client4cpp/src/kpr/ThreadPool.h        |  124 --
 rocketmq-client4cpp/src/kpr/ThreadPoolWork.h    |   34 -
 .../src/kpr/TimerTaskManager.cpp                |   91 -
 rocketmq-client4cpp/src/kpr/TimerTaskManager.h  |   95 -
 rocketmq-client4cpp/src/kpr/TimerThread.cpp     |  186 --
 rocketmq-client4cpp/src/kpr/TimerThread.h       |   79 -
 rocketmq-client4cpp/src/message/Message.cpp     |  379 ----
 .../src/message/MessageDecoder.cpp              |  366 ----
 .../src/message/MessageDecoder.h                |   64 -
 rocketmq-client4cpp/src/message/MessageExt.cpp  |  244 ---
 rocketmq-client4cpp/src/message/MessageId.h     |   59 -
 .../src/message/MessageQueue.cpp                |  153 --
 .../src/producer/DefaultMQProducer.cpp          |  277 ---
 .../src/producer/DefaultMQProducerImpl.cpp      |  932 --------
 .../src/producer/DefaultMQProducerImpl.h        |  205 --
 .../src/producer/LocalTransactionExecuter.h     |   31 -
 .../src/producer/MQProducerInner.h              |   44 -
 .../src/producer/MessageQueueSelector.h         |   96 -
 .../src/producer/ProducerInvokeCallback.cpp     |  101 -
 .../src/producer/ProducerInvokeCallback.h       |   46 -
 .../src/producer/TopicPublishInfo.h             |  141 --
 .../src/producer/TransactionCheckListener.h     |   31 -
 .../src/producer/TransactionMQProducer.h        |  118 -
 .../src/protocol/CommandCustomHeader.cpp        |  672 ------
 .../src/protocol/CommandCustomHeader.h          |  604 ------
 .../src/protocol/ConsumerRunningInfo.cpp        |  168 --
 .../src/protocol/ConsumerRunningInfo.h          |   97 -
 .../GetConsumerListByGroupResponseBody.h        |   97 -
 .../src/protocol/HeartbeatData.cpp              |   52 -
 .../src/protocol/HeartbeatData.h                |  157 --
 rocketmq-client4cpp/src/protocol/KVTable.h      |   58 -
 .../src/protocol/LockBatchBody.cpp              |  112 -
 .../src/protocol/LockBatchBody.h                |   73 -
 rocketmq-client4cpp/src/protocol/MQProtos.cpp   |  248 ---
 rocketmq-client4cpp/src/protocol/MQProtos.h     |  150 --
 .../src/protocol/OffsetSerializeWrapper.h       |  135 --
 .../src/protocol/RemotingCommand.cpp            |  421 ----
 .../src/protocol/RemotingCommand.h              |  153 --
 .../src/protocol/RemotingSerializable.h         |   33 -
 rocketmq-client4cpp/src/protocol/TopicList.h    |   60 -
 .../src/protocol/TopicRouteData.h               |  279 ---
 .../src/transport/InvokeCallback.h              |   32 -
 .../src/transport/RemoteClientConfig.h          |   67 -
 .../src/transport/ResponseFuture.cpp            |  183 --
 .../src/transport/ResponseFuture.h              |   77 -
 .../src/transport/SocketUtil.cpp                |  250 ---
 rocketmq-client4cpp/src/transport/SocketUtil.h  |   75 -
 .../src/transport/TcpRemotingClient.cpp         |  841 --------
 .../src/transport/TcpRemotingClient.h           |  152 --
 .../src/transport/TcpRequestProcessor.h         |   32 -
 .../src/transport/TcpTransport.cpp              |  387 ----
 .../src/transport/TcpTransport.h                |   78 -
 rocketmq-cpp/README.md                          |   76 +-
 rocketmq-donet/.gitignore                       |    9 -
 rocketmq-donet/LICENSE                          |  201 --
 rocketmq-donet/NOTICE                           |    5 -
 rocketmq-mongodb/LICENSE                        |  201 --
 rocketmq-mongodb/NOTICE                         |    5 -
 234 files changed, 36 insertions(+), 39699 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-beam/LICENSE
----------------------------------------------------------------------
diff --git a/rocketmq-beam/LICENSE b/rocketmq-beam/LICENSE
deleted file mode 100644
index b67d909..0000000
--- a/rocketmq-beam/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {}
-
-   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.

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-beam/NOTICE
----------------------------------------------------------------------
diff --git a/rocketmq-beam/NOTICE b/rocketmq-beam/NOTICE
deleted file mode 100644
index 5384857..0000000
--- a/rocketmq-beam/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache RocketMQ (incubating)
-Copyright 2016-2017 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/.gitignore
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/.gitignore b/rocketmq-client4cpp/.gitignore
deleted file mode 100644
index c17af80..0000000
--- a/rocketmq-client4cpp/.gitignore
+++ /dev/null
@@ -1,30 +0,0 @@
-# Compiled Object files
-*.slo
-*.lo
-*.o
-*.d
-*.obj
-
-# Precompiled Headers
-*.gch
-*.pch
-
-# Compiled Dynamic libraries
-*.so
-*.dylib
-*.dll
-
-# Fortran module files
-*.mod
-*.smod
-
-# Compiled Static libraries
-*.lai
-*.la
-*.a
-*.lib
-
-# Executables
-*.exe
-*.out
-*.app

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/LICENSE
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/LICENSE b/rocketmq-client4cpp/LICENSE
deleted file mode 100644
index 5c304d1..0000000
--- a/rocketmq-client4cpp/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   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.

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/Makefile
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/Makefile b/rocketmq-client4cpp/Makefile
deleted file mode 100644
index 7b31385..0000000
--- a/rocketmq-client4cpp/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all:
-	make -C src all
-
-clean:
-	make -C src clean

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/NOTICE
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/NOTICE b/rocketmq-client4cpp/NOTICE
deleted file mode 100644
index 5384857..0000000
--- a/rocketmq-client4cpp/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache RocketMQ (incubating)
-Copyright 2016-2017 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/README.md
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/README.md b/rocketmq-client4cpp/README.md
deleted file mode 100755
index b4fa664..0000000
--- a/rocketmq-client4cpp/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Fork from [RocketMQ-Client4CPP](https://github.com/NDPMediaCorp/RocketMQ-Client4CPP)
-
-[RocketMQ](https://github.com/alibaba/RocketMQ) C++ Client
-===================
-
-### Contributors
-* @[kangliqiang](https://github.com/kangliqiang)
-* @[lizhanhui](https://github.com/lizhanhui)
-* @[suwenkuang](https://github.com/hooligan520)
-
-### Current status
-* On the basis of the original repair a lot of coredump, and memory leak (valgrind) problem, add namespace, fill some of the features
-* only support linux system
-* Currently supports sending messages, support pull mode consumption messages, support push mode consumption messages
-
-### Roadmap
-* Support for transaction messages
-* Continue to support more commands (such as support broker query client running information)
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/build.sh
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/build.sh b/rocketmq-client4cpp/build.sh
deleted file mode 100755
index 1519780..0000000
--- a/rocketmq-client4cpp/build.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-VERSION=1.0.3
-BUILD_PATH=`pwd`
-INSTALL_PATH=$BUILD_PATH/release
-RELEASE_PATH=/data/libs/rocketmq
-
-echo -e  "\e[33;1m# copy include files...\e[0m"
-mkdir -p $INSTALL_PATH
-rm -rf $INSTALL_PATH/*
-cp -rf $BUILD_PATH/rocketmq.mk $INSTALL_PATH/
-cp -rf $BUILD_PATH/include $INSTALL_PATH/
-cp -rf $BUILD_PATH/example $INSTALL_PATH/
-
-echo -e  "\e[33;1m# build target with BIT=32...\e[0m"
-cd $BUILD_PATH/
-BIT=32 make clean >/dev/null
-BIT=32 make all >/dev/null
-mkdir -p $INSTALL_PATH/lib32
-cp -rf $BUILD_PATH/src/librocketmq.a $INSTALL_PATH/lib32/librocketmq.a
-
-echo -e  "\e[33;1m# build target with BIT=64...\e[0m"
-cd $BUILD_PATH/
-BIT=64 make clean >/dev/null
-BIT=64 make all  >/dev/null
-mkdir -p $INSTALL_PATH/lib64
-cp -rf $BUILD_PATH/src/librocketmq.a $INSTALL_PATH/lib64/librocketmq.a
-
-echo -e  "\e[33;1m# release libs...\e[0m"
-cd $BUILD_PATH/
-tar czf rocketmq-client4cpp-${VERSION}.tgz release/
-
-#rm -rf $RELEASE_PATH
-#cp -rf $INSTALL_PATH $RELEASE_PATH
-
-echo -e "\e[33;1m# build example...\e[0m"
-cd $INSTALL_PATH/example
-make all >/dev/null
-

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/clean.sh
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/clean.sh b/rocketmq-client4cpp/clean.sh
deleted file mode 100755
index 3cf8145..0000000
--- a/rocketmq-client4cpp/clean.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-BUILD_PATH=`pwd`
-BIT=32 make -C ./src/ cleanall
-BIT=64 make -C ./src/ cleanall
-rm -rf release
-

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/docs/roadmap.md
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/docs/roadmap.md b/rocketmq-client4cpp/docs/roadmap.md
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/example/Makefile
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/example/Makefile b/rocketmq-client4cpp/example/Makefile
deleted file mode 100755
index 25a9450..0000000
--- a/rocketmq-client4cpp/example/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all:
-	make -C demo all
-
-clean:
-	make -C demo clean

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/example/demo/AsyncProducer.cpp
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/example/demo/AsyncProducer.cpp b/rocketmq-client4cpp/example/demo/AsyncProducer.cpp
deleted file mode 100644
index 045a32a..0000000
--- a/rocketmq-client4cpp/example/demo/AsyncProducer.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
-* Copyright (C) 2013 suwenkuang ,hooligan_520@qq.com
-*
-* 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.
-*/
-
-#include "Common.h"
-#include "SendCallback.h"
-#include "DefaultMQProducer.h"
-using namespace rmq;
-
-long long g_lastUpdateTime = 0;
-volatile long long g_cnt_total = 0;
-volatile long long g_cnt_last = 0;
-volatile long long g_cnt_succ = 0;
-volatile long long g_cnt_fail = 0;
-
-
-void Usage(const char* program)
-{
-    printf("Usage:%s ip:port [-g group] [-t topic] [-n count] [-s size] [-w logpath]\n", program);
-    printf("\t -g group\n");
-    printf("\t -t topic\n");
-    printf("\t -n message count\n");
-    printf("\t -s message size \n");
-    printf("\t -w log path\n");
-}
-
-
-class SampleSendCallback : public SendCallback {
-public:
-    SampleSendCallback()
-    {
-    }
-
-    virtual ~SampleSendCallback()
-    {
-    }
-
-    int count()
-    {
-
-        long long now = MyUtil::getNowMs();
-        long long old = g_lastUpdateTime;
-        long long total = g_cnt_succ + g_cnt_fail;
-        if ((now - old) >= 1000)
-        {
-            if (__sync_bool_compare_and_swap(&g_lastUpdateTime, old, now))
-            {
-                long long time = now - old;
-                int tps = (int)((total - g_cnt_last) * 1.0 / time * 1000.0);
-                g_cnt_last = total;
-
-                MYDEBUG("[producer]succ: %lld, fail: %lld, TPS: %d\n",
-                    g_cnt_succ, g_cnt_fail, tps);
-            }
-        }
-    }
-
-    void onSuccess(SendResult& sendResult)
-    {
-        int cnt = __sync_fetch_and_add(&g_cnt_total, 1);
-        __sync_fetch_and_add(&g_cnt_succ, 1);
-        MYLOG("[%d]|succ|%s\n",  cnt, sendResult.toString().c_str());
-    }
-
-    void onException(MQException& e)
-    {
-        int cnt = __sync_fetch_and_add(&g_cnt_total, 1);
-        __sync_fetch_and_add(&g_cnt_fail, 1);
-
-        MYLOG("[%d]|fail|%s\n",  cnt, e.what());
-    }
-};
-
-int main(int argc, char *argv[]) {
-    if (argc < 2)
-    {
-        Usage(argv[0]);
-        return 0;
-    }
-
-    std::string namesrv = argv[1];
-    std::string group = "pg_test_group";
-    std::string topic = "topic_test";
-    int size = 32;
-    int count = 1000;
-
-    for (int i=2; i< argc; i++)
-    {
-        if (strcmp(argv[i],"-g")==0)
-        {
-            if (i+1 < argc)
-            {
-                group = argv[i+1];
-                i++;
-            }
-            else
-            {
-                Usage(argv[0]);
-                return 0;
-            }
-        }
-        else if (strcmp(argv[i],"-t")==0)
-        {
-            if (i+1 < argc)
-            {
-                topic = argv[i+1];
-                i++;
-            }
-            else
-            {
-                Usage(argv[0]);
-                return 0;
-            }
-        }
-        else if (strcmp(argv[i],"-n")==0)
-        {
-            if (i+1 < argc)
-            {
-                count = atoi(argv[i+1]);
-                i++;
-            }
-            else
-            {
-                Usage(argv[0]);
-                return 0;
-            }
-        }
-        else if (strcmp(argv[i],"-s")==0)
-        {
-            if (i+1 < argc)
-            {
-                size = atoi(argv[i+1]);
-                i++;
-            }
-            else
-            {
-                Usage(argv[0]);
-                return 0;
-            }
-        }
-        else if (strcmp(argv[i],"-w")==0)
-        {
-            if (i+1 < argc)
-            {
-                MyUtil::initLog(argv[i+1]);
-                i++;
-            }
-            else
-            {
-                Usage(argv[0]);
-                return 0;
-            }
-        }
-        else
-        {
-            Usage(argv[0]);
-            return 0;
-        }
-    }
-
-    // init client api log, here is not necessary, need to debug the api need to be initialized, you can consider comment it
-    // Here only the default print warning, error log, the log will be rolling by day, if you need to modify the log level, please set the environment variable, export ROCKETMQ_LOGLEVEL = loglevel
-    // The log level is as follows:
-    // 0 - close the log
-    // 1 - write error log
-    // 2 - write error, warning log
-    // 3 - write error, warning, info log
-    // 4 - write errors, warnings, info, debug logs
-    RocketMQUtil::initLog("/tmp/rocketmq_producer.log");
-
-    RMQ_DEBUG("producer.new: %s", "pg_CppClient");
-    DefaultMQProducer producer("pg_CppClient");
-
-    RMQ_DEBUG("producer.setNamesrvAddr: %s", namesrv.c_str());
-    producer.setNamesrvAddr(namesrv);
-
-    RMQ_DEBUG("producer.start");
-    producer.start();
-
-    std::string tags[] = { "TagA", "TagB", "TagC", "TagD", "TagE" };
-    int nNow = time(NULL);
-    char key[64];
-    char value[1024];
-
-    std::string str;
-    for (int i = 0; i < size; i += 8)
-    {
-        str.append("hello baby");
-    }
-
-    TimeCount tcTotal;
-    tcTotal.begin();
-
-    for (int i = 0; i < count; i++)
-    {
-        try
-        {
-            snprintf(key, sizeof(key), "KEY_%d_%d", nNow, i);
-            snprintf(value, sizeof(value), "%011d_%s", i, str.c_str());
-            Message msg(topic,// topic
-                tags[i % 5],// tag
-                key,// key
-                value,// body
-                strlen(value)+1
-            );
-
-            // Send messages asynchronously
-            SampleSendCallback* pSendCallback = new SampleSendCallback();
-            producer.send(msg, pSendCallback);
-        }
-        catch (MQClientException& e)
-        {
-            std::cout << e << std::endl;
-            __sync_fetch_and_add(&g_cnt_fail, 1);
-            MyUtil::msleep(3000);
-        }
-    }
-
-    while (1)
-    {
-        if ((g_cnt_succ + g_cnt_fail)  >= count)
-        {
-            break;
-        }
-    }
-
-    tcTotal.end();
-
-    printf("statsics: succ=%d, fail=%d, total_cost=%ds, tps=%d, avg=%dms\n",
-        g_cnt_succ, g_cnt_fail, tcTotal.countSec(),
-        (int)((double)count/((double)tcTotal.countUsec()/1000/1000)), tcTotal.countMsec()/count);
-
-    producer.shutdown();
-
-    return 0;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/example/demo/Common.cpp
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/example/demo/Common.cpp b/rocketmq-client4cpp/example/demo/Common.cpp
deleted file mode 100755
index b4db55c..0000000
--- a/rocketmq-client4cpp/example/demo/Common.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
-* Copyright (C) 2013 suwenkuang ,hooligan_520@qq.com
-*
-* 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.
-*/
-
-#include "Common.h"
-
-
-std::string MyUtil::_logPath = "";

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/example/demo/Common.h
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/example/demo/Common.h b/rocketmq-client4cpp/example/demo/Common.h
deleted file mode 100644
index 4863588..0000000
--- a/rocketmq-client4cpp/example/demo/Common.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
-* Copyright (C) 2013 suwenkuang ,hooligan_520@qq.com
-*
-* 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.
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <assert.h>
-#include <time.h>
-#include <stdarg.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <signal.h>
-#include <pthread.h>
-
-#include <sys/time.h>
-#include <sys/timeb.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-#include <sys/syscall.h>
-#include <linux/unistd.h>
-
-#include <cstdio>
-#include <iostream>
-#include <string>
-#include <sstream>
-#include <vector>
-#include <map>
-#include <set>
-
-
-#define MYDEBUG(fmt, args...)   printf(fmt, ##args)
-#define MYLOG(fmt, args...)     MyUtil::writelog("[%s]"fmt, RocketMQUtil::now2str().c_str(), ##args)
-
-class MyUtil
-{
-public:
-    static void msleep(long millis)
-    {
-        struct timespec tv;
-        tv.tv_sec = millis / 1000;
-        tv.tv_nsec = (millis % 1000) * 1000000;
-        nanosleep(&tv, 0);
-    }
-
-    static long long str2ll( const char *str )
-    {
-        return atoll(str);
-    }
-
-    static unsigned long long getNowMs()
-    {
-        struct timeval tv;
-        gettimeofday(&tv, 0);
-        return tv.tv_sec * 1000ULL+tv.tv_usec/1000;
-    }
-
-    static int initLog(const std::string& logPath)
-    {
-        _logPath = logPath;
-    }
-
-    static void writelog(const char* fmt, ...)
-    {
-        if (_logPath.empty())
-        {
-            return;
-        }
-
-        static int logFd = -1;
-        if (logFd < 0)
-        {
-            logFd = open(_logPath.c_str(), O_CREAT | O_RDWR | O_APPEND, 0666);
-        }
-
-        if (logFd > 0)
-        {
-            char buf[1024*128];
-            buf[0] = buf[sizeof(buf) - 1] = '\0';
-
-            va_list ap;
-            va_start(ap, fmt);
-            int size = vsnprintf(buf, sizeof(buf), fmt, ap);
-            va_end(ap);
-
-            write(logFd, buf, size);
-        }
-
-        return;
-    }
-public:
-    static std::string _logPath;
-};
-
-/*
- * int test()
- * {
- *      TimeCount tc;
- *      tc.begin();
- *      func1();
- *      tc.end();
- *      cout << "cost:" << tc.countSec() << endl;
- * }
- */
-class TimeCount
-{
-public:
-    TimeCount()
-    {
-        m_tBegin.tv_sec  = 0;
-        m_tBegin.tv_usec = 0;
-
-        m_tEnd.tv_sec  = 0;
-        m_tEnd.tv_usec = 0;
-    }
-
-    ~TimeCount(){}
-public:
-    void begin()
-    {
-        gettimeofday(&m_tBegin,0);
-    }
-
-    void end()
-    {
-        gettimeofday(&m_tEnd, 0);
-    }
-
-    int countMsec()
-    {
-        return (int)((m_tEnd.tv_sec - m_tBegin.tv_sec)*1000 + (m_tEnd.tv_usec -m_tBegin.tv_usec)/1000.0);
-    }
-
-    int countUsec()
-    {
-        return (m_tEnd.tv_sec - m_tBegin.tv_sec)*1000000+(m_tEnd.tv_usec -m_tBegin.tv_usec);
-    }
-
-    int countSec()
-    {
-        return (m_tEnd.tv_sec - m_tBegin.tv_sec);
-    }
-
-public:
-    timeval m_tBegin;
-    timeval m_tEnd;
-};
-

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/example/demo/Makefile
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/example/demo/Makefile b/rocketmq-client4cpp/example/demo/Makefile
deleted file mode 100755
index be2d60f..0000000
--- a/rocketmq-client4cpp/example/demo/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-TOPDIR=../..
-
-CFLAGS=-g -ggdb -Wno-deprecated -fno-strict-aliasing -fno-omit-frame-pointer
-INCLUDE=-I${TOPDIR}/include
-LIB=-L${TOPDIR}/lib64 -lrocketmq -lz -lrt -lpthread
-TARGET=Producer AsyncProducer PullConsumer PushConsumer
-DEPEND_OBJ=Common.o
-
-
-LOCAL_SRC += $(sort $(wildcard *.cpp *.cc *.c))
-LOCAL_OBJ += $(patsubst %.cpp,%.o, $(patsubst %.cc,%.o, $(patsubst %.c,%.o, $(LOCAL_SRC))))
-
-all:${LOCAL_OBJ} ${TARGET}
-	@echo "build succ!"
-
-clean:
-	rm -vf ${TARGET} *.o
-	@echo "clean succ!"
-
-Producer:Producer.o ${DEPEND_OBJ}
-	$(CXX) $(CFLAGS) -o $@ $^ $(INCLUDE) $(LIB)
-
-AsyncProducer:AsyncProducer.o ${DEPEND_OBJ}
-	$(CXX) $(CFLAGS) -o $@ $^ $(INCLUDE) $(LIB)
-
-PullConsumer:PullConsumer.o ${DEPEND_OBJ}
-	$(CXX) $(CFLAGS) -o $@ $^ $(INCLUDE) $(LIB)
-
-PushConsumer:PushConsumer.o ${DEPEND_OBJ}
-	$(CXX) $(CFLAGS) -o $@ $^ $(INCLUDE) $(LIB)
-
-%.o: %.cpp
-	$(CXX) $(CFLAGS) $(INCLUDE) -o $@ -c $<
-
-%.o: %.cc
-	$(CXX) $(CFLAGS) $(INCLUDE) -o $@ -c $<
-
-%.o: %.c
-	$(CC) $(CFLAGS) $(INCLUDE) -o $@ -c $<

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/example/demo/Producer.cpp
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/example/demo/Producer.cpp b/rocketmq-client4cpp/example/demo/Producer.cpp
deleted file mode 100644
index 9905e0b..0000000
--- a/rocketmq-client4cpp/example/demo/Producer.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
-* Copyright (C) 2013 suwenkuang ,hooligan_520@qq.com
-*
-* 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.
-*/
-#include "Common.h"
-#include "DefaultMQProducer.h"
-using namespace rmq;
-
-void Usage(const char* program)
-{
-	printf("Usage:%s ip:port [-g group] [-t topic] [-n count] [-s size] [-w logpath]\n", program);
-	printf("\t -g group\n");
-	printf("\t -t topic\n");
-	printf("\t -n message count\n");
-	printf("\t -s message size \n");
-	printf("\t -w log path\n");
-}
-
-int main(int argc, char* argv[])
-{
-	if (argc < 2)
-	{
-		Usage(argv[0]);
-		return 0;
-	}
-
-	std::string namesrv = argv[1];
-	std::string group = "pg_test_group";
-	std::string topic = "topic_test";
-	int size = 32;
-	int count = 1000;
-
-	for (int i=2; i< argc; i++)
-	{
-		if (strcmp(argv[i],"-g")==0)
-		{
-			if (i+1 < argc)
-			{
-				group = argv[i+1];
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else if (strcmp(argv[i],"-t")==0)
-		{
-			if (i+1 < argc)
-			{
-				topic = argv[i+1];
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else if (strcmp(argv[i],"-n")==0)
-		{
-			if (i+1 < argc)
-			{
-				count = atoi(argv[i+1]);
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else if (strcmp(argv[i],"-s")==0)
-		{
-			if (i+1 < argc)
-			{
-				size = atoi(argv[i+1]);
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else if (strcmp(argv[i],"-w")==0)
-        {
-            if (i+1 < argc)
-            {
-                MyUtil::initLog(argv[i+1]);
-                i++;
-            }
-            else
-            {
-                Usage(argv[0]);
-                return 0;
-            }
-        }
-		else
-		{
-			Usage(argv[0]);
-			return 0;
-		}
-	}
-
-	// init client api log, here is not necessary, need to debug the api need to be initialized, you can consider comment it
-    // Here only the default print warning, error log, the log will be rolling by day, if you need to modify the log level, please set the environment variable, export ROCKETMQ_LOGLEVEL = loglevel
-    // The log level is as follows:
-    // 0 - close the log
-    // 1 - write error log
-    // 2 - write error, warning log
-    // 3 - write error, warning, info log
-    // 4 - write errors, warnings, info, debug logs
-	RocketMQUtil::initLog("/tmp/rocketmq_producer.log");
-
-	RMQ_DEBUG("producer.new: %s", group.c_str());
-	DefaultMQProducer producer(group);
-
-	RMQ_DEBUG("producer.setNamesrvAddr: %s", namesrv.c_str());
-	producer.setNamesrvAddr(namesrv);
-
-	RMQ_DEBUG("producer.start");
-	producer.start();
-
-	std::string tags[] = { "TagA", "TagB", "TagC", "TagD", "TagE" };
-
-	int _cost = 0, _tps = 0, _avg = 0, _min = 0, _max = 0;
-	int _failCnt = 0;
-	TimeCount tc;
-	TimeCount tcTotal;
-	tcTotal.begin();
-
-	int nNow = time(NULL);
-	char key[64];
-	char value[1024];
-
-	std::string str;
-	for (int i = 0; i < size; i += 8)
-	{
-        str.append("hello baby");
-    }
-
-	for (int i = 0; i < count; i++)
-	{
-		try
-		{
-
-			tc.begin();
-
-			snprintf(key, sizeof(key), "KEY_%d_%d", nNow, i);
-			snprintf(value, sizeof(value), "%011d_%s", i, str.c_str());
-			Message msg(topic,// topic
-				tags[i % 5],// tag
-				key,// key
-				value,// body
-				strlen(value)+1
-			);
-
-			// Send messages synchronously
-			SendResult sendResult = producer.send(msg);
-
-			tc.end();
-
-			int cost = tc.countMsec();
-			_min = (_min == 0) ? cost : (std::min(cost, _min));
-			_max = (_max == 0) ? cost : (std::max(cost, _max));
-
-			MYLOG("[%d]|succ|cost:%dms, result:%s\n", i, cost, sendResult.toString().c_str());
-		}
-		catch (MQClientException& e)
-		{
-			_failCnt++;
-			MYLOG("[%d]|fail|%s\n", i, e.what());
-		}
-	}
-	tcTotal.end();
-
-	MYDEBUG("statsics: num=%d, fail=%d, total_cost=%ds, tps=%d, avg=%dms, min=%dms, max=%dms\n",
-		count, _failCnt, tcTotal.countSec(), (int)((double)count/(tcTotal.countMsec()/1000)),
-		tcTotal.countMsec()/count, _min, _max);
-
-	// 停止生产者
-	producer.shutdown();
-
-	return 0;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/example/demo/PullConsumer.cpp
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/example/demo/PullConsumer.cpp b/rocketmq-client4cpp/example/demo/PullConsumer.cpp
deleted file mode 100755
index 3fae6dc..0000000
--- a/rocketmq-client4cpp/example/demo/PullConsumer.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/**
-* Copyright (C) 2013 suwenkuang ,hooligan_520@qq.com
-*
-* 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.
-*/
-
-#include "Common.h"
-#include "DefaultMQPullConsumer.h"
-using namespace rmq;
-
-volatile long long g_totalCnt = 0;
-
-void PrintResult(PullResult& result)
-{
-	std::list<MessageExt*>::iterator it = result.msgFoundList.begin();
-	for (;it!=result.msgFoundList.end();it++)
-	{
-		MessageExt* me = *it;
-		std::string str;
-		str.assign(me->getBody(),me->getBodyLen());
-
-		int cnt = __sync_fetch_and_add(&g_totalCnt, 1);
-		MYLOG("[%d]|%s|%s\n",  cnt, me->toString().c_str(), str.c_str());
-	}
-}
-
-
-void Usage(const char* program)
-{
-	printf("Usage:%s ip:port [-g group] [-t topic] [-w logpath]\n", program);
-	printf("\t -g consumer group\n");
-	printf("\t -t topic\n");
-	printf("\t -w log path\n");
-}
-
-
-int main(int argc, char* argv[])
-{
-	if (argc<2)
-	{
-		Usage(argv[0]);
-		return 0;
-	}
-
-	std::string namesrv = argv[1];
-	std::string group = "cg_test_pull_group";
-	std::string topic = "topic_test";
-
-	for (int i=2; i< argc; i++)
-	{
-		if (strcmp(argv[i],"-g")==0)
-		{
-			if (i+1 < argc)
-			{
-				group = argv[i+1];
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else if (strcmp(argv[i],"-t")==0)
-		{
-			if (i+1 < argc)
-			{
-				topic = argv[i+1];
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else if (strcmp(argv[i],"-w")==0)
-		{
-			if (i+1 < argc)
-			{
-				MyUtil::initLog(argv[i+1]);
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else
-		{
-			Usage(argv[0]);
-			return 0;
-		}
-	}
-
-	// init client api log, here is not necessary, need to debug the api need to be initialized, you can consider comment it
-    // Here only the default print warning, error log, the log will be rolling by day, if you need to modify the log level, please set the environment variable, export ROCKETMQ_LOGLEVEL = loglevel
-    // The log level is as follows:
-    // 0 - close the log
-    // 1 - write error log
-    // 2 - write error, warning log
-    // 3 - write error, warning, info log
-    // 4 - write errors, warnings, info, debug logs
-	RocketMQUtil::initLog("/tmp/rocketmq_pullconsumer.log");
-
-	RMQ_DEBUG("consumer.new: %s", group.c_str());
-	DefaultMQPullConsumer consumer(group);
-
-	RMQ_DEBUG("consumer.setNamesrvAddr: %s", namesrv.c_str());
-	consumer.setNamesrvAddr(namesrv);
-
-	RMQ_DEBUG("consumer.setMessageModel: %s", getMessageModelString(CLUSTERING));
-	consumer.setMessageModel(CLUSTERING);
-
-	consumer.setConsumerPullTimeoutMillis(4000);
-	consumer.setBrokerSuspendMaxTimeMillis(3000);
-	consumer.setConsumerTimeoutMillisWhenSuspend(5000);
-
-	RMQ_DEBUG("consumer.start");
-	consumer.start();
-
-	RMQ_DEBUG("consumer.fetchSubscribeMessageQueues");
-	std::set<MessageQueue>* mqs = consumer.fetchSubscribeMessageQueues(topic);
-
-	std::set<MessageQueue>::iterator it = mqs->begin();
-	for (; it!=mqs->end(); it++)
-	{
-		MessageQueue mq = *it;
-		bool noNewMsg = false;
-		while (!noNewMsg)
-		{
-			try
-			{
-				RMQ_DEBUG("consumer.fetchConsumeOffset");
-                long long offset = consumer.fetchConsumeOffset(mq, false);
-                if (offset < 0)
-                {
-                    offset = consumer.maxOffset(mq);
-                    if (offset < 0)
-                    {
-						offset = LLONG_MAX;
-                    }
-                }
-
-				RMQ_DEBUG("consumer.pullBlockIfNotFound");
-				//PullResult* pullResult = consumer.pullBlockIfNotFound(mq, "*", offset, 32);
-				PullResult* pullResult = consumer.pull(mq, "*", offset, 32);
-				PrintResult(*pullResult);
-
-				RMQ_DEBUG("consumer.updateConsumeOffset");
-                consumer.updateConsumeOffset(mq, pullResult->nextBeginOffset);
-
-				switch (pullResult->pullStatus)
-				{
-					case FOUND:
-						// TODO
-						break;
-					case NO_MATCHED_MSG:
-						break;
-					case NO_NEW_MSG:
-						noNewMsg = true;
-						break;
-					case OFFSET_ILLEGAL:
-						break;
-					default:
-						break;
-				}
-
-				delete pullResult;
-			}
-			catch (MQException& e)
-			{
-				std::cout<<e<<std::endl;
-			}
-		}
-	}
-	delete mqs;
-
-	RMQ_DEBUG("consumer.shutdown");
-	consumer.shutdown();
-
-	return 0;
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/example/demo/PushConsumer.cpp
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/example/demo/PushConsumer.cpp b/rocketmq-client4cpp/example/demo/PushConsumer.cpp
deleted file mode 100755
index 1a8bfed..0000000
--- a/rocketmq-client4cpp/example/demo/PushConsumer.cpp
+++ /dev/null
@@ -1,256 +0,0 @@
-/**
-* Copyright (C) 2013 suwenkuang ,hooligan_520@qq.com
-*
-* 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.
-*/
-
-#include "Common.h"
-#include "DefaultMQPushConsumer.h"
-using namespace rmq;
-
-volatile long long g_lastCnt = 0;
-volatile long long g_totalCnt = 0;
-long long g_lastUpdateTime = 0;
-
-static std::string bin2str(const std::string& strBin)
-{
-	if(strBin.size() == 0)
-	{
-		return "";
-	}
-
-	std::string sOut;
-    const char *p = (const char *)strBin.data();
-    size_t len = strBin.size();
-
-    char sBuf[255];
-    for (size_t i = 0; i < len; ++i, ++p)
-	{
-        snprintf(sBuf, sizeof(sBuf), "%02x", (unsigned char) *p);
-		sOut += sBuf;
-    }
-
-    return sOut;
-}
-
-
-class MsgListener : public MessageListenerConcurrently
-{
-public:
-	MsgListener()
-	{
-		consumeTimes = 0;
-	}
-
-	~MsgListener()
-	{
-
-	}
-
-	/**
-	 * consume messages
-	 * !!!Notice:multi-thread call, need to pay attention to dealing with multi-threaded re-entry problem
-	 * @param  msgs    message list
-	 * @param  context context for consumer
-	 * @return         [CONSUME_SUCCESS- success,RECONSUME_LATER-consume fail and retry later]
-	 */
-	ConsumeConcurrentlyStatus consumeMessage(std::list<MessageExt*>& msgs,
-											ConsumeConcurrentlyContext& context)
-	{
-		int cnt = __sync_fetch_and_add(&g_totalCnt, 1);
-		long long now = MyUtil::getNowMs();
-		long long old = g_lastUpdateTime;
-		if ((now - old) >= 1000)
-		{
-			if (__sync_bool_compare_and_swap(&g_lastUpdateTime, old, now))
-			{
-				long long time = now - old;
-				int tps = (int)((g_totalCnt - g_lastCnt) * 1.0 / time * 1000.0);
-				g_lastCnt = g_totalCnt;
-
-				MYDEBUG("[consume]msgcount: %lld, TPS: %d\n", g_totalCnt, tps);
-			}
-		}
-
-
-		MessageExt* msg = msgs.front();
-		long long offset = msg->getQueueOffset();
-		std::string maxOffset = msg->getProperty(Message::PROPERTY_MAX_OFFSET);
-
-		long long diff = MyUtil::str2ll(maxOffset.c_str()) - offset;
-		if (diff > 100000)
-		{
-			if (diff % 10000 == 0)
-			{
-				MYDEBUG("overload, offset:%lld, diff:%lld\n", offset, diff);
-			}
-			// return CONSUME_SUCCESS;
-		}
-
-		std::list<MessageExt*>::iterator it = msgs.begin();
-		for (;it != msgs.end();it++)
-		{
-			MessageExt* me = *it;
-			std::string str;
-			str.assign(me->getBody(),me->getBodyLen());
-
-			MYLOG("[%d]|%s|%s\n",  cnt, me->toString().c_str(), str.c_str());
-		}
-
-		consumeTimes++;
-
-		/*
-		if ((consumeTimes % 2) == 0)
-		{
-			return RECONSUME_LATER;
-		}
-		else if ((consumeTimes % 3) == 0)
-		{
-			context.delayLevelWhenNextConsume = 5;
-			return RECONSUME_LATER;
-		}
-		*/
-
-		// context.ackIndex = msgs.size() - 1;
-		return CONSUME_SUCCESS;
-	}
-
-	int consumeTimes;
-};
-
-
-void Usage(const char* program)
-{
-	printf("Usage:%s ip:port [-g group] [-t topic] [-w logpath]\n", program);
-	printf("\t -g consumer group\n");
-	printf("\t -t topic\n");
-	printf("\t -w log path\n");
-}
-
-
-int main(int argc, char* argv[])
-{
-	if (argc < 2)
-	{
-		Usage(argv[0]);
-		return 0;
-	}
-
-	std::string namesrv = argv[1];
-	std::string group = "cg_test_push_group";
-	std::string topic = "topic_test";
-	for (int i=2; i< argc; i++)
-	{
-		if (strcmp(argv[i],"-g")==0)
-		{
-			if (i+1 < argc)
-			{
-				group = argv[i+1];
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else if (strcmp(argv[i],"-t")==0)
-		{
-			if (i+1 < argc)
-			{
-				topic = argv[i+1];
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else if (strcmp(argv[i],"-w")==0)
-		{
-			if (i+1 < argc)
-			{
-				MyUtil::initLog(argv[i+1]);
-				i++;
-			}
-			else
-			{
-				Usage(argv[0]);
-				return 0;
-			}
-		}
-		else
-		{
-			Usage(argv[0]);
-			return 0;
-		}
-	}
-
-    // init client api log, here is not necessary, need to debug the api need to be initialized, you can consider comment it
-    // Here only the default print warning, error log, the log will be rolling by day, if you need to modify the log level, please set the environment variable, export ROCKETMQ_LOGLEVEL = loglevel
-    // The log level is as follows:
-    // 0 - close the log
-    // 1 - write error log
-    // 2 - write error, warning log
-    // 3 - write error, warning, info log
-    // 4 - write errors, warnings, info, debug logs
-	RocketMQUtil::initLog("/tmp/rocketmq_pushconsumer.log");
-
-	RMQ_DEBUG("consumer.new: %s", group.c_str());
-	DefaultMQPushConsumer consumer(group);
-
-	RMQ_DEBUG("consumer.setNamesrvAddr: %s", namesrv.c_str());
-	consumer.setNamesrvAddr(namesrv);
-
-	RMQ_DEBUG("consumer.setMessageModel: %s", getMessageModelString(CLUSTERING));
-	consumer.setMessageModel(CLUSTERING);
-
-	RMQ_DEBUG("consumer.subscribe");
-	consumer.subscribe(topic, "*");
-
-	consumer.setConsumeFromWhere(CONSUME_FROM_LAST_OFFSET);
-
-	// Set the number of each consumption message, the default is 1
-	// consumer.setConsumeMessageBatchMaxSize(1);
-
-	// The number of consumer thread pool, the default minimum 5, the maximum 25, the proposed set to the same, more stable
-	// consumer.setConsumeThreadMin(25);
-	// consumer.setConsumeThreadMax(25);
-
-	// Single message consume timeout, default is 15 minutes
-	// When the consumption times out, message will be send back to the retry queue and re-delivered
-	// consumer.setConsumeTimeout(15);
-
-	RMQ_DEBUG("consumer.registerMessageListener");
-	MsgListener* listener = new MsgListener();
-	consumer.registerMessageListener(listener);
-
-	RMQ_DEBUG("consumer.start");
-	consumer.start();
-
-	while(1)
-	{
-		if (getchar()=='e'&&getchar()=='x'&&getchar()=='i'&&getchar()=='t')
-		{
-			break;
-		}
-		::sleep(1);
-	}
-
-	RMQ_DEBUG("consumer.shutdown");
-	consumer.shutdown();
-	delete listener;
-
-	return 0;
-}

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/include/AllocateMessageQueueStrategy.h
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/include/AllocateMessageQueueStrategy.h b/rocketmq-client4cpp/include/AllocateMessageQueueStrategy.h
deleted file mode 100755
index fc10072..0000000
--- a/rocketmq-client4cpp/include/AllocateMessageQueueStrategy.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
-* Copyright (C) 2013 kangliqiang ,kangliq@163.com
-*
-* 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.
-*/
-#ifndef __RMQ_ALLOCATEMESSAGEQUEUESTRATEGY_H__
-#define __RMQ_ALLOCATEMESSAGEQUEUESTRATEGY_H__
-
-#include <vector>
-#include <string>
-#include <list>
-
-#include "RocketMQClient.h"
-#include "MessageQueue.h"
-
-namespace rmq
-{
-	/**
-	* Consumer Queue Automatic Assignment Policy
-	*
-	*/
-	class AllocateMessageQueueStrategy
-	{
-	public:
-		virtual ~AllocateMessageQueueStrategy() {}
-
-		/**
-		* Assign queues to the current ConsumerId
-		*
-		* @param [currentCID] Current ConsumerId
-		* @param [mqAll] All queues of the current Topic, no duplicate data, and orderly
-		* @param [cidAll] All subscription groups for the current subscription group, without duplication of data, and orderly
-		* @return allocation results, no duplicate data
-		*/
-		virtual std::vector<MessageQueue>* allocate(
-				const std::string& consumerGroup,
-				const std::string& currentCID,
-				std::vector<MessageQueue>& mqAll,
-				std::list<std::string>& cidAll)=0;
-		virtual std::string getName()=0;
-	};
-}
-
-#endif

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/include/ClientConfig.h
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/include/ClientConfig.h b/rocketmq-client4cpp/include/ClientConfig.h
deleted file mode 100755
index ca36830..0000000
--- a/rocketmq-client4cpp/include/ClientConfig.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Copyright (C) 2010-2013 kangliqiang <ka...@163.com>
- *
- * 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.
- */
-#ifndef __RMQ_CLIENTCONFIG_H__
-#define __RMQ_CLIENTCONFIG_H__
-
-#include <string>
-#include "RocketMQClient.h"
-
-namespace rmq
-{
-	/**
-	 * Producer and Consumer common configuration
-	 *
-	 */
-	class ClientConfig
-	{
-	public:
-		ClientConfig();
-		virtual ~ClientConfig();
-
-		std::string buildMQClientId();
-		void changeInstanceNameToPID();
-
-		void resetClientConfig(const ClientConfig& cc);
-		ClientConfig cloneClientConfig();
-
-		std::string getNamesrvAddr();
-		void setNamesrvAddr(const std::string& namesrvAddr);
-
-		std::string getClientIP();
-		void setClientIP(const std::string& clientIP);
-
-		std::string getInstanceName();
-		void setInstanceName(const std::string& instanceName);
-
-		int getClientCallbackExecutorThreads();
-		void setClientCallbackExecutorThreads(int clientCallbackExecutorThreads);
-
-		int getPollNameServerInterval();
-
-		void setPollNameServerInterval(int pollNameServerInterval);
-
-		int getHeartbeatBrokerInterval();
-		void setHeartbeatBrokerInterval(int heartbeatBrokerInterval);
-
-		int getPersistConsumerOffsetInterval();
-		void setPersistConsumerOffsetInterval(int persistConsumerOffsetInterval);
-
-		std::string toString() const;
-
-	private:
-		int m_clientCallbackExecutorThreads;
-		int m_pollNameServerInterval;
-		int m_heartbeatBrokerInterval;
-		int m_persistConsumerOffsetInterval;
-		std::string m_clientIP;
-		std::string m_instanceName;
-		std::string m_namesrvAddr;
-	};
-}
-
-#endif

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/include/ConsumeMessageHook.h
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/include/ConsumeMessageHook.h b/rocketmq-client4cpp/include/ConsumeMessageHook.h
deleted file mode 100644
index c13e6c7..0000000
--- a/rocketmq-client4cpp/include/ConsumeMessageHook.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
-* Copyright (C) 2013 kangliqiang ,kangliq@163.com
-*
-* 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.
-*/
-#ifndef __RMQ_CONSUMEMESSAGEHOOK_H__
-#define __RMQ_CONSUMEMESSAGEHOOK_H__
-
-#include <list>
-
-#include "RocketMQClient.h"
-#include "MessageQueue.h"
-
-namespace rmq
-{
-	typedef struct
-	{
-		std::string consumerGroup;
-		std::list<MessageExt*> msgList;
-		MessageQueue mq;
-		bool success;
-		void* arg;
-	} ConsumeMessageContext;
-
-	class ConsumeMessageHook
-	{
-	public:
-		virtual ~ConsumeMessageHook() {}
-		virtual std::string hookName()=0;
-		virtual void consumeMessageBefore(const ConsumeMessageContext& context)=0;
-		virtual void consumeMessageAfter(const ConsumeMessageContext& context)=0;
-	};
-}
-
-#endif

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/include/ConsumeType.h
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/include/ConsumeType.h b/rocketmq-client4cpp/include/ConsumeType.h
deleted file mode 100755
index a4748ab..0000000
--- a/rocketmq-client4cpp/include/ConsumeType.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
-* Copyright (C) 2013 kangliqiang ,kangliq@163.com
-*
-* 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.
-*/
-#ifndef __RMQ_CONSUMETYPE_H__
-#define __RMQ_CONSUMETYPE_H__
-
-#include "RocketMQClient.h"
-
-namespace rmq
-{
-	enum ConsumeType
-	{
-		/**
-		* Active comsume
-		*/
-		CONSUME_ACTIVELY,
-		/**
-		* Passive comsume
-		*/
-		CONSUME_PASSIVELY,
-	};
-
-	enum ConsumeFromWhere
-	{
-		CONSUME_FROM_LAST_OFFSET,
-		CONSUME_FROM_LAST_OFFSET_AND_FROM_MIN_WHEN_BOOT_FIRST,
-		CONSUME_FROM_MIN_OFFSET,
-		CONSUME_FROM_MAX_OFFSET,
-	    CONSUME_FROM_FIRST_OFFSET,
-	    CONSUME_FROM_TIMESTAMP,
-	};
-
-	enum MessageModel
-	{
-		BROADCASTING,
-		CLUSTERING,
-	};
-
-	const char* getConsumeTypeString(ConsumeType type);
-	const char* getConsumeFromWhereString(ConsumeFromWhere type);
-	const char* getMessageModelString(MessageModel type);
-}
-
-#endif

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/b9bb6cfa/rocketmq-client4cpp/include/DefaultMQProducer.h
----------------------------------------------------------------------
diff --git a/rocketmq-client4cpp/include/DefaultMQProducer.h b/rocketmq-client4cpp/include/DefaultMQProducer.h
deleted file mode 100755
index 9bf2f74..0000000
--- a/rocketmq-client4cpp/include/DefaultMQProducer.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
-* Copyright (C) 2013 kangliqiang ,kangliq@163.com
-*
-* 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.
-*/
-
-#ifndef __RMQ_DEFAULTMQPRODUCER_H__
-#define __RMQ_DEFAULTMQPRODUCER_H__
-
-#include <string>
-#include <list>
-#include <vector>
-
-#include "RocketMQClient.h"
-#include "MQClientException.h"
-#include "Message.h"
-#include "SendResult.h"
-#include "ClientConfig.h"
-#include "MQProducer.h"
-
-namespace rmq
-{
-	class MessageQueue;
-	class MessageQueueSelector;
-	class MQClientException;
-	class Message;
-	class DefaultMQProducerImpl;
-
-	/**
-	* Message producer
-	*
-	*/
-	class DefaultMQProducer : public ClientConfig ,public MQProducer
-	{
-	public:
-		DefaultMQProducer();
-		DefaultMQProducer(const std::string& producerGroup);
-		~DefaultMQProducer();
-
-		//begin MQProducer
-		void start();
-		void shutdown();
-
-		std::vector<MessageQueue>* fetchPublishMessageQueues(const std::string& topic);
-
-		SendResult send(Message& msg);
-		SendResult send(Message& msg, MessageQueue& mq);
-		SendResult send(Message& msg, MessageQueueSelector* selector, void* arg);
-		void send(Message& msg, SendCallback* pSendCallback);
-		void send(Message& msg, MessageQueue& mq, SendCallback* pSendCallback);
-		void send(Message& msg, MessageQueueSelector* selector, void* arg, SendCallback* pSendCallback);
-		void sendOneway(Message& msg);
-		void sendOneway(Message& msg, MessageQueue& mq);
-		void sendOneway(Message& msg, MessageQueueSelector* selector, void* arg);
-
-		TransactionSendResult sendMessageInTransaction(Message& msg,
-														LocalTransactionExecuter* pTranExecuter,
-														void* arg);
-		//end MQProducer
-
-		void createTopic(const std::string& key, const std::string& newTopic, int queueNum) ;
-		long long searchOffset(const MessageQueue& mq, long long timestamp);
-		long long maxOffset(const MessageQueue& mq);
-		long long minOffset(const MessageQueue& mq);
-		long long earliestMsgStoreTime(const MessageQueue& mq);
-		MessageExt* viewMessage(const std::string& msgId) ;
-		QueryResult queryMessage(const std::string& topic,
-								 const std::string& key,
-								 int maxNum,
-								 long long begin,
-								 long long end);
-
-		std::string getProducerGroup();
-		void setProducerGroup(const std::string& producerGroup);
-
-		std::string getCreateTopicKey();
-		void setCreateTopicKey(const std::string& createTopicKey);
-
-		int getSendMsgTimeout();
-		void setSendMsgTimeout(int sendMsgTimeout) ;
-
-		int getCompressMsgBodyOverHowmuch();
-		void setCompressMsgBodyOverHowmuch(int compressMsgBodyOverHowmuch);
-
-		int getCompressLevel();
-		void setCompressLevel(int compressLevel);
-
-		DefaultMQProducerImpl* getDefaultMQProducerImpl();
-
-		bool isRetryAnotherBrokerWhenNotStoreOK();
-		void setRetryAnotherBrokerWhenNotStoreOK(bool retryAnotherBrokerWhenNotStoreOK);
-
-		int getMaxMessageSize();
-		void setMaxMessageSize(int maxMessageSize);
-
-		int getDefaultTopicQueueNums();
-		void setDefaultTopicQueueNums(int defaultTopicQueueNums);
-
-		int getRetryTimesWhenSendFailed();
-	    void setRetryTimesWhenSendFailed(int retryTimesWhenSendFailed);
-
-	protected:
-		DefaultMQProducerImpl* m_pDefaultMQProducerImpl;
-
-	private:
-		std::string m_producerGroup;
-		std::string m_createTopicKey;
-
-		int m_defaultTopicQueueNums;
-		int m_sendMsgTimeout;
-		int m_compressMsgBodyOverHowmuch;
-		int m_retryTimesWhenSendFailed;
-		bool m_retryAnotherBrokerWhenNotStoreOK;
-		int m_maxMessageSize;
-		int m_compressLevel;
-	};
-}
-
-#endif