/** @file Messages for call independent Supplementary Service Control, GSM 04.80 2.2. */ /* * Copyright 2008, 2009 Free Software Foundation, Inc. * Copyright 2011, 2014 Range Networks, Inc. * This software is distributed under multiple licenses; * see the COPYING file in the main directory for licensing * information for this specific distribution. * * This use of this software may be subject to additional restrictions. * See the LEGAL file in the main directory for details. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include "GSML3SSMessages.h" #include #include using namespace std; namespace GSM { void L3SupServVersionIndicator::_define_vtable() {} // Force the class vtable into this module. void L3SupServFacilityIE::_define_vtable() {} // Force the class vtable into this module. ostream& operator<<(ostream& os, const L3SupServVersionIndicator& ie) { ie.text(os); return os; } ostream& operator<<(ostream& os, const L3SupServFacilityIE& ie) { ie.text(os); return os; } ostream& operator<<(ostream& os, const L3SupServMessage& msg) { msg.text(os); return os; } ostream& operator<<(ostream& os, const L3SupServMessage* msg) { if (msg == NULL) os << "(null SS message)"; else msg->text(os); return os; } ostream& operator<<(ostream& os, L3SupServMessage::MessageType val) { switch (val) { case L3SupServMessage::ReleaseComplete: os << "ReleaseComplete"; break; case L3SupServMessage::Facility: os << "Facility"; break; case L3SupServMessage::Register: os << "Register"; break; default: os << hex << "0x" << (int)val << dec; } return os; } void L3OneByteProtocolElement::parseV(const L3Frame&src, size_t&rp, size_t expectedLength) { if (expectedLength != 1) { LOG(ERR) << "Unexpected length="<