Github user jpeach commented on a diff in the pull request:

    https://github.com/apache/trafficserver/pull/653#discussion_r64925841
  
    --- Diff: iocore/hostdb/P_RefCountCache.h ---
    @@ -0,0 +1,572 @@
    +#ifndef _P_RefCountCache_h_
    +#define _P_RefCountCache_h_
    +
    +#include "I_EventSystem.h"
    +
    +#include <ts/Map.h>
    +#include <ts/List.h>
    +
    +#include <cstdint>
    +// TODO: no vector?
    +#include <vector>
    +#include <unistd.h>
    +#include <string.h>
    +#include <sys/stat.h>
    +#include <fcntl.h>
    +#include <sys/mman.h>
    +#include <cmath>
    +#include <fstream>
    +
    +#include "ts/I_Version.h"
    +
    +#define REFCOUNT_CACHE_EVENT_SYNC REFCOUNT_CACHE_EVENT_EVENTS_START
    +
    +#define REFCOUNTCACHE_MAGIC_NUMBER 0x0BAD2D9
    +#define REFCOUNTCACHE_MAJOR_VERSION 1
    +#define REFCOUNTCACHE_MINOR_VERSION 0
    +
    +// TODO: elsewhere?
    +#define PtrMutex Ptr<ProxyMutex>
    +
    +// In the cache we want to recount our items
    +// This class will handle memory allocations (on the freelist) and
    +// take care of implementing RefCountObj-- so that the items we want in
    +// the cache don't have to inherit from it (which makes 
serialization/deserialization much easier)
    +class RefCountCacheItemBase : public RefCountObj
    --- End diff --
    
    The STL design pattern is to associate the allocator with the container. In 
this approach knowledge of the allocator is distributed across the container 
and the contained objects. It would be much better to isolate this and have the 
container return Ptr<C> directly, hiding all the internal implementation 
details.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to