Skip to content
Snippets Groups Projects
pathComp_RESTapi.h 1.98 KiB
Newer Older
  • Learn to ignore specific revisions
  • ////////////////////////////////////////////////////////////////////////////////////////
    /**
     * 	# Copyright 2022 Centre Tecnolgic de Telecomunicacions de Catalunya (CTTC/CERCA) www.cttc.es
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
    
     * Author: CTTC/CERCA PONS RU Ricardo Martnez (ricardo.martinez@cttc.es)
     */
    
    #ifndef _PATH_COMP_REST_API_H
    #define _PATH_COMP_REST_API_H
    
    
    #include <glib.h>
    #include <glib/gstdio.h>
    #include <glib-2.0/glib/gtypes.h>
    
    
    #define MAX_GIO_CHANNEL_BUFFER_SIZE     131072
    
    // HTTP RETURN CODES
    #define HTTP_RETURN_CODE_OK				200
    #define HTTP_RETURN_CODE_CREATED 		201
    #define HTTP_RETURN_CODE_BAD_REQUEST    400
    #define HTTP_RETURN_CODE_UNAUTHORIZED   401
    #define HTTP_RETURN_CODE_FORBIDDEN      403
    #define HTTP_RETURN_CODE_NOT_FOUND		404
    #define HTTP_RETURN_CODE_NOT_ACCEPTABLE	406
    
    // REST API METHODS (SIMPLY INT ENCODING)
    #define REST_API_METHOD_GET		1
    #define REST_API_METHOD_POST	2
    #define REST_API_METHOD_HTTP	3
    #define REST_API_METHOD_PUT		4
    
    #define MAXLENGTH				131072
    
    ////////////////////////////////////////////////////
    // Client Struct for connecting to PATH COMP SERVER
    ////////////////////////////////////////////////////
    // List of tcp clients connected to PATH COMP
    
    #define PATH_COMP_CLIENT_TYPE	1000
    struct pathComp_client
    {
    	/** IO Channel from client. */
    	GIOChannel *channel;
    
    	/** Input/output buffer to the client. */    
    	struct stream *obuf;
    	struct stream *ibuf;
    
    	gint fd; // file descriptor     
        guint type;     
    };
    
    void RESTapi_init (gint);
    #endif