/* * Copyright (C) 2016 Charybdis Development Team * Copyright (C) 2016 Jason Volk * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice is present in all copies. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ namespace ircd { namespace client { namespace serv { struct serv { list users; list servers; std::shared_ptr user; // who activated this connection std::string by; int caps; /* capabilities bit-field */ std::string fullcaps; std::shared_ptr nameinfo; serv(); ~serv() noexcept; }; serv::serv() { } serv::~serv() noexcept { } std::shared_ptr & user(serv &serv) { return serv.user; } std::string & by(serv &serv) { return serv.by; } int & caps(serv &serv) { return serv.caps; } std::string & fullcaps(serv &serv) { return serv.fullcaps; } list & users(serv &serv) { return serv.users; } list & servers(serv &serv) { return serv.servers; } std::shared_ptr & nameinfo(serv &serv) { return serv.nameinfo; } const std::shared_ptr & nameinfo(const serv &serv) { return serv.nameinfo; } } // namespace serv } // namespace client } // namespace ircd