annotate trunk/external/oscpack/ip/IpEndpointName.cpp @ 622:16918ffbf975

Carfac C++ revision 3, indluding more style improvements. The output structs are now classes again, and have separate storage methods for each output structure along with flags in the Run and RunSegment methods to allow for only storing NAPs if desired.
author alexbrandmeyer
date Fri, 17 May 2013 19:52:45 +0000
parents 4b37b53105a3
children
rev   line source
tomwalters@570 1 /*
tomwalters@570 2 oscpack -- Open Sound Control packet manipulation library
tomwalters@570 3 http://www.audiomulch.com/~rossb/oscpack
tomwalters@570 4
tomwalters@570 5 Copyright (c) 2004-2005 Ross Bencina <rossb@audiomulch.com>
tomwalters@570 6
tomwalters@570 7 Permission is hereby granted, free of charge, to any person obtaining
tomwalters@570 8 a copy of this software and associated documentation files
tomwalters@570 9 (the "Software"), to deal in the Software without restriction,
tomwalters@570 10 including without limitation the rights to use, copy, modify, merge,
tomwalters@570 11 publish, distribute, sublicense, and/or sell copies of the Software,
tomwalters@570 12 and to permit persons to whom the Software is furnished to do so,
tomwalters@570 13 subject to the following conditions:
tomwalters@570 14
tomwalters@570 15 The above copyright notice and this permission notice shall be
tomwalters@570 16 included in all copies or substantial portions of the Software.
tomwalters@570 17
tomwalters@570 18 Any person wishing to distribute modifications to the Software is
tomwalters@570 19 requested to send the modifications to the original developer so that
tomwalters@570 20 they can be incorporated into the canonical version.
tomwalters@570 21
tomwalters@570 22 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
tomwalters@570 23 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
tomwalters@570 24 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
tomwalters@570 25 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
tomwalters@570 26 ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
tomwalters@570 27 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
tomwalters@570 28 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
tomwalters@570 29 */
tomwalters@570 30 #include "IpEndpointName.h"
tomwalters@570 31
tomwalters@570 32 #include <stdio.h>
tomwalters@570 33
tomwalters@570 34 #include "NetworkingUtils.h"
tomwalters@570 35
tomwalters@570 36
tomwalters@570 37 unsigned long IpEndpointName::GetHostByName( const char *s )
tomwalters@570 38 {
tomwalters@570 39 return ::GetHostByName(s);
tomwalters@570 40 }
tomwalters@570 41
tomwalters@570 42
tomwalters@570 43 void IpEndpointName::AddressAsString( char *s ) const
tomwalters@570 44 {
tomwalters@570 45 if( address == ANY_ADDRESS ){
tomwalters@570 46 sprintf( s, "<any>" );
tomwalters@570 47 }else{
tomwalters@570 48 sprintf( s, "%d.%d.%d.%d",
tomwalters@570 49 (int)((address >> 24) & 0xFF),
tomwalters@570 50 (int)((address >> 16) & 0xFF),
tomwalters@570 51 (int)((address >> 8) & 0xFF),
tomwalters@570 52 (int)(address & 0xFF) );
tomwalters@570 53 }
tomwalters@570 54 }
tomwalters@570 55
tomwalters@570 56
tomwalters@570 57 void IpEndpointName::AddressAndPortAsString( char *s ) const
tomwalters@570 58 {
tomwalters@570 59 if( port == ANY_PORT ){
tomwalters@570 60 if( address == ANY_ADDRESS ){
tomwalters@570 61 sprintf( s, "<any>:<any>" );
tomwalters@570 62 }else{
tomwalters@570 63 sprintf( s, "%d.%d.%d.%d:<any>",
tomwalters@570 64 (int)((address >> 24) & 0xFF),
tomwalters@570 65 (int)((address >> 16) & 0xFF),
tomwalters@570 66 (int)((address >> 8) & 0xFF),
tomwalters@570 67 (int)(address & 0xFF) );
tomwalters@570 68 }
tomwalters@570 69 }else{
tomwalters@570 70 if( address == ANY_ADDRESS ){
tomwalters@570 71 sprintf( s, "<any>:%d", port );
tomwalters@570 72 }else{
tomwalters@570 73 sprintf( s, "%d.%d.%d.%d:%d",
tomwalters@570 74 (int)((address >> 24) & 0xFF),
tomwalters@570 75 (int)((address >> 16) & 0xFF),
tomwalters@570 76 (int)((address >> 8) & 0xFF),
tomwalters@570 77 (int)(address & 0xFF),
tomwalters@570 78 (int)port );
tomwalters@570 79 }
tomwalters@570 80 }
tomwalters@570 81 }