On Aug 8, 2014, at 3:08 PM, sor...@apache.org wrote:

> Repository: trafficserver
> Updated Branches:
>  refs/heads/master 5c0bc7c94 -> 7fa5c5c7a
> 
> 
> TS-1800: Add new hash function base class

Any tests?

> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/9e7ceddb
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/9e7ceddb
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/9e7ceddb
> 
> Branch: refs/heads/master
> Commit: 9e7ceddbad56370643ab514d9ad918d7740f3db8
> Parents: 5c0bc7c
> Author: Phil Sorber <sor...@apache.org>
> Authored: Fri Aug 8 12:30:54 2014 -0600
> Committer: Phil Sorber <sor...@apache.org>
> Committed: Fri Aug 8 15:26:02 2014 -0600
> 
> ----------------------------------------------------------------------
> CHANGES            |  2 ++
> lib/ts/Hash.cc     | 48 ++++++++++++++++++++++++++++++++++++++++++++++
> lib/ts/Hash.h      | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
> lib/ts/Makefile.am |  2 ++
> lib/ts/libts.h     |  1 +
> 5 files changed, 104 insertions(+)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/9e7ceddb/CHANGES
> ----------------------------------------------------------------------
> diff --git a/CHANGES b/CHANGES
> index d8dd8bf..0050a2d 100644
> --- a/CHANGES
> +++ b/CHANGES
> @@ -1,6 +1,8 @@
>                                                          -*- coding: utf-8 -*-
> Changes with Apache Traffic Server 5.1.0
> 
> +  *) [TS-1800] Create one hashing infrastructure.
> +
>   *) [TS-2860] Add AArch64 support.
> 
>   *) [TS-2916] set response header properly for combo_handler plugin.
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/9e7ceddb/lib/ts/Hash.cc
> ----------------------------------------------------------------------
> diff --git a/lib/ts/Hash.cc b/lib/ts/Hash.cc
> new file mode 100644
> index 0000000..a0931ef
> --- /dev/null
> +++ b/lib/ts/Hash.cc
> @@ -0,0 +1,48 @@
> +/** @file
> +
> +  @section license License
> +
> +  Licensed to the Apache Software Foundation (ASF) under one
> +  or more contributor license agreements.  See the NOTICE file
> +  distributed with this work for additional information
> +  regarding copyright ownership.  The ASF licenses this file
> +  to you 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 "Hash.h"
> +#include <cstring>
> +
> +ATSHashBase::~ATSHashBase() {
> +}
> +
> +bool
> +ATSHash::operator==(const ATSHash & other) const {
> +    if (this->size() != other.size()) {
> +        return false;
> +    }
> +    if (memcmp(this->get(), other.get(), this->size()) == 0) {
> +        return true;
> +    } else {
> +        return false;
> +    }
> +}
> +
> +bool
> +ATSHash32::operator==(const ATSHash32 & other) const {
> +    return this->get() == other.get();
> +}
> +
> +bool
> +ATSHash64::operator==(const ATSHash64 & other) const {
> +    return this->get() == other.get();
> +}
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/9e7ceddb/lib/ts/Hash.h
> ----------------------------------------------------------------------
> diff --git a/lib/ts/Hash.h b/lib/ts/Hash.h
> new file mode 100644
> index 0000000..c0e621c
> --- /dev/null
> +++ b/lib/ts/Hash.h
> @@ -0,0 +1,51 @@
> +/** @file
> +
> +  @section license License
> +
> +  Licensed to the Apache Software Foundation (ASF) under one
> +  or more contributor license agreements.  See the NOTICE file
> +  distributed with this work for additional information
> +  regarding copyright ownership.  The ASF licenses this file
> +  to you 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 __HASH_H__
> +#define __HASH_H__
> +
> +#include <cstddef>
> +#include <stdint.h>
> +
> +struct ATSHashBase {
> +    virtual void update(const void *, size_t) = 0;
> +    virtual void final(void) = 0;
> +    virtual void clear(void) = 0;
> +    virtual ~ATSHashBase();
> +};
> +
> +struct ATSHash : ATSHashBase {
> +    virtual const void *get(void) const = 0;
> +    virtual size_t size(void) const = 0;
> +    virtual bool operator==(const ATSHash &) const;
> +};
> +
> +struct ATSHash32 : ATSHashBase {
> +    virtual uint32_t get(void) const = 0;
> +    virtual bool operator==(const ATSHash32 &) const;
> +};
> +
> +struct ATSHash64 : ATSHashBase {
> +    virtual uint64_t get(void) const = 0;
> +    virtual bool operator==(const ATSHash64 &) const;
> +};
> +
> +#endif
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/9e7ceddb/lib/ts/Makefile.am
> ----------------------------------------------------------------------
> diff --git a/lib/ts/Makefile.am b/lib/ts/Makefile.am
> index 437d654..d745dba 100644
> --- a/lib/ts/Makefile.am
> +++ b/lib/ts/Makefile.am
> @@ -52,6 +52,8 @@ libtsutil_la_SOURCES = \
>   DynArray.h \
>   EventNotify.cc \
>   EventNotify.h \
> +  Hash.cc \
> +  Hash.h \
>   HostLookup.cc \
>   HostLookup.h \
>   INK_MD5.h \
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/9e7ceddb/lib/ts/libts.h
> ----------------------------------------------------------------------
> diff --git a/lib/ts/libts.h b/lib/ts/libts.h
> index 97ce163..7a6097c 100644
> --- a/lib/ts/libts.h
> +++ b/lib/ts/libts.h
> @@ -81,6 +81,7 @@
> #include "Compatability.h"
> #include "DynArray.h"
> #include "EventNotify.h"
> +#include "Hash.h"
> #include "I_Version.h"
> #include "InkPool.h"
> #include "List.h"
> 

Reply via email to