/**
 * Autogenerated by Thrift Compiler (0.9.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
#include "Hbase_constants.h"

namespace apache { namespace hadoop { namespace hbase { namespace thrift {

const HbaseConstants g_Hbase_constants;

HbaseConstants::HbaseConstants() {
}

}}}} // namespace

