libzmq master
The Intelligent Transport Layer

ipc_address.cpp

Go to the documentation of this file.
00001 /*
00002     Copyright (c) 2011 250bpm s.r.o.
00003     Copyright (c) 2011 Other contributors as noted in the AUTHORS file
00004 
00005     This file is part of 0MQ.
00006 
00007     0MQ is free software; you can redistribute it and/or modify it under
00008     the terms of the GNU Lesser General Public License as published by
00009     the Free Software Foundation; either version 3 of the License, or
00010     (at your option) any later version.
00011 
00012     0MQ is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015     GNU Lesser General Public License for more details.
00016 
00017     You should have received a copy of the GNU Lesser General Public License
00018     along with this program.  If not, see <http://www.gnu.org/licenses/>.
00019 */
00020 
00021 #include "ipc_address.hpp"
00022 
00023 #if !defined ZMQ_HAVE_WINDOWS && !defined ZMQ_HAVE_OPENVMS
00024 
00025 #include "err.hpp"
00026 
00027 #include <string.h>
00028 
00029 zmq::ipc_address_t::ipc_address_t ()
00030 {
00031     memset (&address, 0, sizeof (address));
00032 }
00033 
00034 zmq::ipc_address_t::~ipc_address_t ()
00035 {
00036 }
00037 
00038 int zmq::ipc_address_t::resolve (const char *path_)
00039 {
00040     if (strlen (path_) >= sizeof (address.sun_path)) {
00041         errno = ENAMETOOLONG;
00042         return -1;
00043     }
00044 
00045     address.sun_family = AF_UNIX;
00046     strcpy (address.sun_path, path_);
00047     return 0;
00048 }
00049 
00050 sockaddr *zmq::ipc_address_t::addr ()
00051 {
00052     return (sockaddr*) &address;
00053 }
00054 
00055 socklen_t zmq::ipc_address_t::addrlen ()
00056 {
00057     return (socklen_t) sizeof (address);
00058 }
00059 
00060 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines