/* Copyright (C) 2010 Srivats P. This file is part of "Ostinato" This is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/> */ #ifndef _PB_RPC_COMMON_H #define _PB_RPC_COMMON_H //! \todo (LOW) check which one is right - wrong one seems to be working!!!!! #if 0 #define GET16(p) (quint16)( \ (*((quint8*)(p)+0) << 8 ) \ | (*((quint8*)(p)+1))) #else #define GET16(p) (quint16)( \ (*((quint8*)(p)+1) << 8 ) \ | (*((quint8*)(p)+0))) #define GET32(p) (quint32)( \ (*((quint8*)(p)+3) << 24) \ | (*((quint8*)(p)+2) << 16) \ | (*((quint8*)(p)+1) << 8 ) \ | (*((quint8*)(p)+0))) #endif #define BYTESWAP4(x) \ (((x & 0xFF000000) >> 24) | \ ((x & 0x00FF0000) >> 8) | \ ((x & 0x0000FF00) << 8) | \ ((x & 0x000000FF) << 24)) #define BYTESWAP2(x) \ (((x & 0xFF00) >> 8) | \ ((x & 0x00FF) << 8)) //! \todo (LOW) : portability #if 1 #define HTONL(x) BYTESWAP4(x) #define NTOHL(x) BYTESWAP4(x) #define HTONS(x) BYTESWAP2(x) #define NTOHS(x) BYTESWAP2(x) #else #define HTONL(x) (x) #define NTOHL(x) (x) #define HTONS(x) (x) #define NTOHS(x) (x) #endif // Print a HexDump #define BUFDUMP(ptr, len) qDebug("%s", QString(QByteArray((char*)(ptr), \ (len)).toHex()).toAscii().data()); /* ** RPC Header (8) ** - MSG_TYPE (2) ** - METHOD_ID (2) ** - LEN (4) [not including this header] */ #define PB_HDR_SIZE 8 #define PB_MSG_TYPE_REQUEST 1 #define PB_MSG_TYPE_RESPONSE 2 #define PB_MSG_TYPE_BINBLOB 3 #define MSGBUF_SIZE 4096 #endif