/** * \file * * \author Georg Hopp * * \copyright * Copyright © 2014 Georg Hopp * * This program 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 . */ #include #include #include "trbase.h" #include "trio.h" #include "tr/protocol/raw.h" #include "tr/protocol/message_raw.h" #include "tr/interface/protocol.h" static int protocolRawCtor(void * _this, va_list * params) { return 0; } static void protocolRawDtor(void * _this) {} static TR_ProtoMessage protocolRawCreateMessage(void * _this, TR_Socket remote) { return (TR_ProtoMessage)TR_new(TR_ProtoMessageRaw, remote); } static size_t protocolRawParse(void * _this, TR_ProtoMessage _message, TR_RemoteData data) { TR_ProtoMessageRaw message = (TR_ProtoMessageRaw)_message; message->data = data; _message->ready = 1; return ((TR_SizedData)data)->size; } static TR_RemoteData protocolRawCompose(void * _this, TR_ProtoMessage _message) { return ((TR_ProtoMessageRaw)_message)->data; } TR_INIT_IFACE(TR_Class, protocolRawCtor, protocolRawDtor, NULL); TR_INIT_IFACE( TR_Protocol, protocolRawCreateMessage, protocolRawCreateMessage, protocolRawCreateMessage, protocolRawParse, protocolRawCompose); TR_CREATE_CLASS( TR_ProtocolRaw, TR_Protocol, NULL, TR_IF(TR_Class), TR_IF(TR_Protocol)); // vim: set ts=4 sw=4: