1*9646dec5SDamjan Jovanovic /************************************************************** 2*9646dec5SDamjan Jovanovic * 3*9646dec5SDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one 4*9646dec5SDamjan Jovanovic * or more contributor license agreements. See the NOTICE file 5*9646dec5SDamjan Jovanovic * distributed with this work for additional information 6*9646dec5SDamjan Jovanovic * regarding copyright ownership. The ASF licenses this file 7*9646dec5SDamjan Jovanovic * to you under the Apache License, Version 2.0 (the 8*9646dec5SDamjan Jovanovic * "License"); you may not use this file except in compliance 9*9646dec5SDamjan Jovanovic * with the License. You may obtain a copy of the License at 10*9646dec5SDamjan Jovanovic * 11*9646dec5SDamjan Jovanovic * http://www.apache.org/licenses/LICENSE-2.0 12*9646dec5SDamjan Jovanovic * 13*9646dec5SDamjan Jovanovic * Unless required by applicable law or agreed to in writing, 14*9646dec5SDamjan Jovanovic * software distributed under the License is distributed on an 15*9646dec5SDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*9646dec5SDamjan Jovanovic * KIND, either express or implied. See the License for the 17*9646dec5SDamjan Jovanovic * specific language governing permissions and limitations 18*9646dec5SDamjan Jovanovic * under the License. 19*9646dec5SDamjan Jovanovic * 20*9646dec5SDamjan Jovanovic *************************************************************/ 21*9646dec5SDamjan Jovanovic 22*9646dec5SDamjan Jovanovic // MARKER(update_precomp.py): autogen include statement, do not remove 23*9646dec5SDamjan Jovanovic #include "precompiled_webdav.hxx" 24*9646dec5SDamjan Jovanovic 25*9646dec5SDamjan Jovanovic #include <rtl/ustrbuf.hxx> 26*9646dec5SDamjan Jovanovic #include "LockRequest.hxx" 27*9646dec5SDamjan Jovanovic 28*9646dec5SDamjan Jovanovic using namespace http_dav_ucp; 29*9646dec5SDamjan Jovanovic 30*9646dec5SDamjan Jovanovic #define LOCK_HEADER "<?xml version=\"1.0\" encoding=\"utf-8\"?><lockinfo xmlns=\"DAV:\">" 31*9646dec5SDamjan Jovanovic #define LOCK_TYPE "<locktype><write/></locktype>" 32*9646dec5SDamjan Jovanovic #define LOCK_TRAILER "</lockinfo>" 33*9646dec5SDamjan Jovanovic generateRequestBody(const ucb::Lock & inLock)34*9646dec5SDamjan Jovanovicrtl::OString LockRequest::generateRequestBody( const ucb::Lock& inLock ) 35*9646dec5SDamjan Jovanovic { 36*9646dec5SDamjan Jovanovic const char *lockScope = NULL; 37*9646dec5SDamjan Jovanovic switch ( inLock.Scope ) 38*9646dec5SDamjan Jovanovic { 39*9646dec5SDamjan Jovanovic //i126305 TODO investigate on this case... 40*9646dec5SDamjan Jovanovic case ucb::LockScope_MAKE_FIXED_SIZE: 41*9646dec5SDamjan Jovanovic 42*9646dec5SDamjan Jovanovic case ucb::LockScope_EXCLUSIVE: 43*9646dec5SDamjan Jovanovic lockScope = "<lockscope><exclusive/></lockscope>"; 44*9646dec5SDamjan Jovanovic break; 45*9646dec5SDamjan Jovanovic case ucb::LockScope_SHARED: 46*9646dec5SDamjan Jovanovic lockScope = "<lockscope><shared/></lockscope>"; 47*9646dec5SDamjan Jovanovic break; 48*9646dec5SDamjan Jovanovic } 49*9646dec5SDamjan Jovanovic 50*9646dec5SDamjan Jovanovic rtl::OUStringBuffer aBuffer; 51*9646dec5SDamjan Jovanovic aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( LOCK_HEADER )); 52*9646dec5SDamjan Jovanovic aBuffer.appendAscii( lockScope ); 53*9646dec5SDamjan Jovanovic aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( LOCK_TYPE )); 54*9646dec5SDamjan Jovanovic aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( "<owner>" )); 55*9646dec5SDamjan Jovanovic rtl::OUString aStr; 56*9646dec5SDamjan Jovanovic inLock.Owner >>= aStr; 57*9646dec5SDamjan Jovanovic aBuffer.appendAscii( rtl::OUStringToOString( aStr, RTL_TEXTENCODING_UTF8 ).getStr() ); 58*9646dec5SDamjan Jovanovic aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( "</owner>" )); 59*9646dec5SDamjan Jovanovic aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( LOCK_TRAILER )); 60*9646dec5SDamjan Jovanovic return rtl::OUStringToOString( aBuffer.makeStringAndClear(), RTL_TEXTENCODING_UTF8 ); 61*9646dec5SDamjan Jovanovic } 62