#ifndef _INCLUDED_BOBCAT_LOCALSOCKETBASE_
#define _INCLUDED_BOBCAT_LOCALSOCKETBASE_

#include <sys/un.h>
#include <string>
#include <sys/socket.h>

#include <bobcat/errno>

namespace FBB
{
    class LocalSocketBase
    {
        size_t            d_length;
        int                 d_socket;
        struct sockaddr_un  d_address;

        protected:
            LocalSocketBase();                                      // 1
            LocalSocketBase(std::string const &name) throw (Errno)
            {
                open(name);
            }

            void open(std::string const &name) throw (Errno);

            int socket() const
            {
                return d_socket;
            }

            size_t size() const
            {
                return d_length;
            }

            sockaddr const *sockaddrPtr() const
            {
                return reinterpret_cast<sockaddr const *>(&d_address);
            }

    };
}

#endif



