Kaydet (Commit) ab382911 authored tarafından David Tardon's avatar David Tardon

move anonymous namespace to .cxx

Change-Id: I52d2ed4b0454233da21e9040dd324772247113c1
üst ff52d60b
......@@ -32,8 +32,226 @@
#include "docsh.hxx"
#include "docfunc.hxx"
#include "sccollaboration.hxx"
#include <editeng/editobj.hxx>
#include <tubes/manager.hxx>
namespace {
OUString formulaCellToString( ScFormulaCell *pCell )
{
(void)pCell; // FIXME: implement me
return OUString();
}
OUString editToString( const EditTextObject& /*rEditText*/ )
{
// FIXME: implement me.
return OUString();
}
EditTextObject stringToEdit( const OUString& rStr )
{
// FIXME: implement me.
return EditTextObject();
}
ScFormulaCell* stringToFormulaCell( const OUString &rString )
{
(void)rString; // FIXME: implement me
return NULL;
}
struct ProtocolError {
const char *message;
};
class ScChangeOpReader {
std::vector< rtl::OUString > maArgs;
public:
ScChangeOpReader( const rtl::OUString &rString)
{
// will need to handle escaping etc.
// Surely someone else wrote this before ! [!?]
enum {
IN_TEXT, CHECK_QUOTE, FIND_LAST_QUOTE, SKIP_SEMI
} eState = CHECK_QUOTE;
sal_Int32 nStart = 0;
for (sal_Int32 n = 0; n < rString.getLength(); n++)
{
if (rString[n] == '\\')
{
n++; // skip next char
continue;
}
switch (eState) {
case CHECK_QUOTE:
if (rString[n] == '"')
{
nStart = n + 1;
eState = FIND_LAST_QUOTE;
break;
}
// else drop through
case IN_TEXT:
if (rString[n] == ';')
{
maArgs.push_back( rString.copy( nStart, n - nStart ) );
nStart = n + 1;
eState = CHECK_QUOTE;
}
break;
case FIND_LAST_QUOTE:
if (rString[n] == '"')
{
maArgs.push_back( rString.copy( nStart, n - nStart ) );
eState = SKIP_SEMI;
break;
}
break;
case SKIP_SEMI:
if (rString[n] == ';')
{
nStart = n + 1;
eState = CHECK_QUOTE;
}
break;
}
}
if ( nStart < rString.getLength())
maArgs.push_back( rString.copy( nStart, rString.getLength() - nStart ) );
}
~ScChangeOpReader() {}
rtl::OUString getMethod()
{
return maArgs[0];
}
size_t getArgCount() { return maArgs.size(); }
rtl::OUString getString( sal_Int32 n )
{
if (n > 0 && (size_t)n < getArgCount() )
{
rtl::OUString aUStr( maArgs[ n ] );
ScGlobal::EraseQuotes( aUStr );
return aUStr;
} else
return rtl::OUString();
}
ScAddress getAddress( sal_Int32 n )
{
ScAddress aAddr;
rtl::OUString aToken( getString( n ) );
aAddr.Parse( aToken );
return aAddr;
}
sal_Int32 getInt( sal_Int32 n )
{
return getString( n ).toInt32();
}
bool getBool( sal_Int32 n )
{
return getString( n ).equalsIgnoreAsciiCase( "true" );
}
ScFormulaCell* getFormulaCell( sal_Int32 n )
{
return stringToFormulaCell( getString( n ) );
}
double getDouble( sal_Int32 n )
{
return getString(n).toDouble();
}
EditTextObject getEdit( sal_Int32 n )
{
return stringToEdit(getString(n));
}
};
} // anonymous namespace
// Ye noddy mangling - needs improvement ...
// method name ';' then arguments ; separated
class ScChangeOpWriter
{
rtl::OUStringBuffer aMessage;
void appendSeparator()
{
aMessage.append( sal_Unicode( ';' ) );
}
public:
ScChangeOpWriter( const char *pName )
{
aMessage.appendAscii( pName );
appendSeparator();
}
void appendString( const rtl::OUString &rStr )
{
if ( rStr.indexOf( sal_Unicode( '"' ) ) >= 0 ||
rStr.indexOf( sal_Unicode( ';' ) ) >= 0 )
{
rtl::OUString aQuoted( rStr );
ScGlobal::AddQuotes( aQuoted, sal_Unicode( '"' ) );
aMessage.append( aQuoted );
}
else
aMessage.append( rStr );
appendSeparator();
}
void appendAddress( const ScAddress &rPos )
{
rtl::OUString aStr;
rPos.Format( aStr, SCA_VALID );
aMessage.append( aStr );
appendSeparator();
}
void appendInt( sal_Int32 i )
{
aMessage.append( i );
appendSeparator();
}
void appendBool( sal_Bool b )
{
aMessage.appendAscii( b ? "true" : "false" );
appendSeparator();
}
void appendFormulaCell( ScFormulaCell *pCell )
{
appendString( formulaCellToString( pCell ) );
}
void appendEditText( const EditTextObject& rStr )
{
appendString( editToString(rStr) );
}
void appendDouble( double fVal )
{
aMessage.append(fVal);
appendSeparator();
}
rtl::OString toString()
{
return rtl::OUStringToOString( aMessage.toString(), RTL_TEXTENCODING_UTF8 );
}
};
void ScDocFuncSend::RecvMessage( const rtl::OString &rString )
{
try {
......
......@@ -14,223 +14,7 @@
#include "docfunc.hxx"
class ScCollaboration;
namespace {
OUString formulaCellToString( ScFormulaCell *pCell )
{
(void)pCell; // FIXME: implement me
return OUString();
}
OUString editToString( const EditTextObject& /*rEditText*/ )
{
// FIXME: implement me.
return OUString();
}
EditTextObject stringToEdit( const OUString& rStr )
{
// FIXME: implement me.
return EditTextObject();
}
ScFormulaCell* stringToFormulaCell( const OUString &rString )
{
(void)rString; // FIXME: implement me
return NULL;
}
// Ye noddy mangling - needs improvement ...
// method name ';' then arguments ; separated
class ScChangeOpWriter
{
rtl::OUStringBuffer aMessage;
void appendSeparator()
{
aMessage.append( sal_Unicode( ';' ) );
}
public:
ScChangeOpWriter( const char *pName )
{
aMessage.appendAscii( pName );
appendSeparator();
}
void appendString( const rtl::OUString &rStr )
{
if ( rStr.indexOf( sal_Unicode( '"' ) ) >= 0 ||
rStr.indexOf( sal_Unicode( ';' ) ) >= 0 )
{
rtl::OUString aQuoted( rStr );
ScGlobal::AddQuotes( aQuoted, sal_Unicode( '"' ) );
aMessage.append( aQuoted );
}
else
aMessage.append( rStr );
appendSeparator();
}
void appendAddress( const ScAddress &rPos )
{
rtl::OUString aStr;
rPos.Format( aStr, SCA_VALID );
aMessage.append( aStr );
appendSeparator();
}
void appendInt( sal_Int32 i )
{
aMessage.append( i );
appendSeparator();
}
void appendBool( sal_Bool b )
{
aMessage.appendAscii( b ? "true" : "false" );
appendSeparator();
}
void appendFormulaCell( ScFormulaCell *pCell )
{
appendString( formulaCellToString( pCell ) );
}
void appendEditText( const EditTextObject& rStr )
{
appendString( editToString(rStr) );
}
void appendDouble( double fVal )
{
aMessage.append(fVal);
appendSeparator();
}
rtl::OString toString()
{
return rtl::OUStringToOString( aMessage.toString(), RTL_TEXTENCODING_UTF8 );
}
};
struct ProtocolError {
const char *message;
};
class ScChangeOpReader {
std::vector< rtl::OUString > maArgs;
public:
ScChangeOpReader( const rtl::OUString &rString)
{
// will need to handle escaping etc.
// Surely someone else wrote this before ! [!?]
enum {
IN_TEXT, CHECK_QUOTE, FIND_LAST_QUOTE, SKIP_SEMI
} eState = CHECK_QUOTE;
sal_Int32 nStart = 0;
for (sal_Int32 n = 0; n < rString.getLength(); n++)
{
if (rString[n] == '\\')
{
n++; // skip next char
continue;
}
switch (eState) {
case CHECK_QUOTE:
if (rString[n] == '"')
{
nStart = n + 1;
eState = FIND_LAST_QUOTE;
break;
}
// else drop through
case IN_TEXT:
if (rString[n] == ';')
{
maArgs.push_back( rString.copy( nStart, n - nStart ) );
nStart = n + 1;
eState = CHECK_QUOTE;
}
break;
case FIND_LAST_QUOTE:
if (rString[n] == '"')
{
maArgs.push_back( rString.copy( nStart, n - nStart ) );
eState = SKIP_SEMI;
break;
}
break;
case SKIP_SEMI:
if (rString[n] == ';')
{
nStart = n + 1;
eState = CHECK_QUOTE;
}
break;
}
}
if ( nStart < rString.getLength())
maArgs.push_back( rString.copy( nStart, rString.getLength() - nStart ) );
}
~ScChangeOpReader() {}
rtl::OUString getMethod()
{
return maArgs[0];
}
size_t getArgCount() { return maArgs.size(); }
rtl::OUString getString( sal_Int32 n )
{
if (n > 0 && (size_t)n < getArgCount() )
{
rtl::OUString aUStr( maArgs[ n ] );
ScGlobal::EraseQuotes( aUStr );
return aUStr;
} else
return rtl::OUString();
}
ScAddress getAddress( sal_Int32 n )
{
ScAddress aAddr;
rtl::OUString aToken( getString( n ) );
aAddr.Parse( aToken );
return aAddr;
}
sal_Int32 getInt( sal_Int32 n )
{
return getString( n ).toInt32();
}
bool getBool( sal_Int32 n )
{
return getString( n ).equalsIgnoreAsciiCase( "true" );
}
ScFormulaCell* getFormulaCell( sal_Int32 n )
{
return stringToFormulaCell( getString( n ) );
}
double getDouble( sal_Int32 n )
{
return getString(n).toDouble();
}
EditTextObject getEdit( sal_Int32 n )
{
return stringToEdit(getString(n));
}
};
} // anonymous namespace
class ScChangeOpWriter;
class ScDocFuncSend : public ScDocFunc
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment