196de5490SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 396de5490SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 496de5490SAndrew Rist * or more contributor license agreements. See the NOTICE file 596de5490SAndrew Rist * distributed with this work for additional information 696de5490SAndrew Rist * regarding copyright ownership. The ASF licenses this file 796de5490SAndrew Rist * to you under the Apache License, Version 2.0 (the 896de5490SAndrew Rist * "License"); you may not use this file except in compliance 996de5490SAndrew Rist * with the License. You may obtain a copy of the License at 1096de5490SAndrew Rist * 1196de5490SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 1296de5490SAndrew Rist * 1396de5490SAndrew Rist * Unless required by applicable law or agreed to in writing, 1496de5490SAndrew Rist * software distributed under the License is distributed on an 1596de5490SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1696de5490SAndrew Rist * KIND, either express or implied. See the License for the 1796de5490SAndrew Rist * specific language governing permissions and limitations 1896de5490SAndrew Rist * under the License. 1996de5490SAndrew Rist * 2096de5490SAndrew Rist *************************************************************/ 2196de5490SAndrew Rist 2296de5490SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25*b63233d8Sdamjan #include "precompiled_dbui.hxx" 26cdf0e10cSrcweir #ifndef DBAUI_TABLEROW_EXCHANGE_HXX 27cdf0e10cSrcweir #include "TableRowExchange.hxx" 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir #ifndef _SOT_FORMATS_HXX 30cdf0e10cSrcweir #include <sot/formats.hxx> 31cdf0e10cSrcweir #endif 32cdf0e10cSrcweir #ifndef _SOT_STORAGE_HXX 33cdf0e10cSrcweir #include <sot/storage.hxx> 34cdf0e10cSrcweir #endif 35cdf0e10cSrcweir #ifndef DBAUI_TABLEROW_HXX 36cdf0e10cSrcweir #include "TableRow.hxx" 37cdf0e10cSrcweir #endif 38cdf0e10cSrcweir 39cdf0e10cSrcweir namespace dbaui 40cdf0e10cSrcweir { 41cdf0e10cSrcweir using namespace ::com::sun::star::uno; 42cdf0e10cSrcweir using namespace ::com::sun::star::beans; OTableRowExchange(const::std::vector<::boost::shared_ptr<OTableRow>> & _rvTableRow)43cdf0e10cSrcweir OTableRowExchange::OTableRowExchange(const ::std::vector< ::boost::shared_ptr<OTableRow> >& _rvTableRow) 44cdf0e10cSrcweir : m_vTableRow(_rvTableRow) 45cdf0e10cSrcweir { 46cdf0e10cSrcweir } 47cdf0e10cSrcweir // ----------------------------------------------------------------------------- WriteObject(SotStorageStreamRef & rxOStm,void * pUserObject,sal_uInt32 nUserObjectId,const::com::sun::star::datatransfer::DataFlavor &)48cdf0e10cSrcweir sal_Bool OTableRowExchange::WriteObject( SotStorageStreamRef& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId, const ::com::sun::star::datatransfer::DataFlavor& /*rFlavor*/ ) 49cdf0e10cSrcweir { 50cdf0e10cSrcweir if(nUserObjectId == SOT_FORMATSTR_ID_SBA_TABED) 51cdf0e10cSrcweir { 52cdf0e10cSrcweir ::std::vector< ::boost::shared_ptr<OTableRow> >* pRows = reinterpret_cast< ::std::vector< ::boost::shared_ptr<OTableRow> >* >(pUserObject); 53cdf0e10cSrcweir if(pRows) 54cdf0e10cSrcweir { 55cdf0e10cSrcweir (*rxOStm) << (sal_Int32)pRows->size(); // first stream the size 56cdf0e10cSrcweir ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aIter = pRows->begin(); 57cdf0e10cSrcweir ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aEnd = pRows->end(); 58cdf0e10cSrcweir for(;aIter != aEnd;++aIter) 59cdf0e10cSrcweir (*rxOStm) << *(*aIter); 60cdf0e10cSrcweir return sal_True; 61cdf0e10cSrcweir } 62cdf0e10cSrcweir } 63cdf0e10cSrcweir return sal_False; 64cdf0e10cSrcweir } 65cdf0e10cSrcweir // ----------------------------------------------------------------------------- AddSupportedFormats()66cdf0e10cSrcweir void OTableRowExchange::AddSupportedFormats() 67cdf0e10cSrcweir { 68cdf0e10cSrcweir if ( !m_vTableRow.empty() ) 69cdf0e10cSrcweir AddFormat(SOT_FORMATSTR_ID_SBA_TABED); 70cdf0e10cSrcweir } 71cdf0e10cSrcweir // ----------------------------------------------------------------------------- GetData(const::com::sun::star::datatransfer::DataFlavor & rFlavor)72cdf0e10cSrcweir sal_Bool OTableRowExchange::GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor ) 73cdf0e10cSrcweir { 74cdf0e10cSrcweir sal_uLong nFormat = SotExchange::GetFormat(rFlavor); 75cdf0e10cSrcweir if(nFormat == SOT_FORMATSTR_ID_SBA_TABED) 76cdf0e10cSrcweir return SetObject(&m_vTableRow,SOT_FORMATSTR_ID_SBA_TABED,rFlavor); 77cdf0e10cSrcweir return sal_False; 78cdf0e10cSrcweir } 79cdf0e10cSrcweir // ----------------------------------------------------------------------------- ObjectReleased()80cdf0e10cSrcweir void OTableRowExchange::ObjectReleased() 81cdf0e10cSrcweir { 82cdf0e10cSrcweir m_vTableRow.clear(); 83cdf0e10cSrcweir } 84cdf0e10cSrcweir // ----------------------------------------------------------------------------- 85cdf0e10cSrcweir } 86cdf0e10cSrcweir 87cdf0e10cSrcweir 88cdf0e10cSrcweir 89cdf0e10cSrcweir 90cdf0e10cSrcweir 91cdf0e10cSrcweir 92cdf0e10cSrcweir 93cdf0e10cSrcweir 94