blob: c8582193b4e750a8a5670397c926e7a5c95c68b5 [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* 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.
* -------------------------------------------------------------------
*/
#ifndef PVRTSP_CLIENT_ENGINE_UTILS_H
#define PVRTSP_CLIENT_ENGINE_UTILS_H
//#include "pvrtsp_client_engine_utils.h"
#ifndef OSCL_BASE_H_INCLUDED
#include "oscl_base.h"
#endif
#ifndef OSCL_STDSTRING_H_INCLUDED
#include "oscl_stdstring.h"
#endif
#ifndef OSCL_UTF8CONV_H
#include "oscl_utf8conv.h"
#endif
#ifndef OSCL_ERROR_CODES_H_INCLUDED
#include "oscl_error_codes.h"
#endif
#ifndef OSCL_STRING_H_INCLUDED
#include "oscl_string.h"
#endif
#define MAX_LONG_TEXT_LEN 1024
typedef enum
{
CONCATENATE,
REPLACE_PATH,
REPLACE_HOST,
UNKNOWN
} URLType;
const char FWD_SLASH = '/';
const char COLON = ':';
const char DOT = '.';
/*
*Function : bool composeURL(char *baseURL, char *relativeURL, char *completeURL)
*Parameters : char *baseURL - input parameter, needs to be NULL terminated
* char *relativeURL - input parameter, needs to be NULL terminated
* char *completeURL - output parameter, will be NULL terminated
* int completeURLLen - input/output parameter
*Date : 06/03/2002
*Description: This function composes a URL using a base URL and relative URL. It is based
* on RFC 2396 and supports a sub-set of the exhaustive list of relative URL
* specified in the document. It does not support relative URLs that begin
* with a "." or those that contain a ":" in them.
* No memory is allocated inside the function. The caller of this function
* must take care of all memory allocation/deallocation for the parameters
* passed to this function.
*Output : This function returns TRUE or FALSE based on a successful
* composition or not. In case of successful composition, the complete URL
* is returned in the third parameter.
*/
bool composeURL(const char *baseURL, const char *relativeURL, \
char *completeURL, unsigned int &completeURLLen);
/*
* Function : const char* findRelativeURL(const char *aURL)
* Parameters : const char *aURL - input parameter
* Date : 10/05/2006
* Description: This function finds the relative URL within the aURL, including the forward slash. Returns NULL if NOT found.
* Output : The relative URL or NULL.
*/
const char* findRelativeURL(const char *aURL);
/*
*Function : URLType findRelativeURLType(char *relativeURL)
*Parameters : char *relativeURL - input parameter, needs to be NULL terminated
*Date : 06/03/2002
*Description: This function looks at the relative URL and determines what type of
* operation needs to be performed to compose the complete URL.
*Output : This function returns the URL type. The return values are of the
* enumerated type URLType with values
* CONCATENATE, REPLACE_PATH, REPLACE_HOST, UNKNOWN
*/
URLType findRelativeURLType(const char *relativeURL);
/*
* Function : void dropTextAfterLastSlash(char *copyOfBaseURL)
* Parameters : char *copyOfBaseURL - input/output parameter
* Date : 06/03/2002
* Description: This function drops text after the last "/" in the URL(if any).
* Output : The modified URL is pointed to by the input parameter.
*/
void dropTextAfterLastSlash(char *copyOfBaseURL);
/*
* Function : void dropTextAfterFirstSlash(char *copyOfBaseURL)
* Parameters : char *copyOfBaseURL - input/output parameter
* Date : 06/03/2002
* Description: This function drops text after the first "/" in the URL(if any).
* Output : The modified URL is pointed to by the input parameter.
*/
void dropTextAfterFirstSlash(char *copyOfBaseURL);
/*
* Function : OSCL_String& generatePseudoUUID(void)
* Parameters : OSCL_String& aUUID - input/output parameter
* Date : 03/27/2006
* Description: This function generate a pseudo UUID string.
* Output : The pseudo UUID string like 6e31c837-b458-4c27-b290-73805cb08da1.
*/
bool generatePseudoUUID(OSCL_String& aUUID);
#endif //PVRTSP_CLIENT_ENGINE_UTILS_H