On 02/08/2013 04:08 PM, Rai, Neeraj wrote:
So the org.openoffice.sheet.addin.CalcAddinSock service you specified
implements a new UNO interface that you added (and which has a method
startThr), right?
Yes.
Did you bundle in your extension a types.rdb that
contains the information about that new interface?
No. But tried to change fundamentalrc SERVICE/TYPES rows to add $ORIGIN/CalcAddinThr.rdb. scalc
complained about duplicate entry.
I assumed that installing the extension informs scalc about my rdb. Maybe not?
I know about CORBA at conceptual level and how UNO works almost like CORBA just better.
I don't understand how the unopkg and .rdb achieve that theory. Specifically, where
types.rdb fits.
I thought maybe unopkg add is similar to adding in types.rdb ?
Helping you would probably be easiest if you gave the full source code of your extension,
along with short instructions how to build it (e.g., "call make from
within a configured LO SDK environment").
attaching the code, makefile, and readme with instructions. to extract :
tar -zxvf CalcAddinThr.tgz
Attached CalcAddinThr.patch solves the problem. You inadvertently
registered the libCalcAddinThr.so UNO component both the old, active way
(by calling regcomp, which calls your component_writeInfo) and the new,
passive way (by providing a *.component file). You may want to also
remove the obsolete component_writeInfo implementation from your
CalcAddinThr_impl.cxx. (In order to test your code, I also needed an
explicit include of unistd.h for read(2), and drop some apparently dead
copy/paste stuff that caused additional compilation errors; I simply
included those changes in the attached patch.)
Stephan
diff -rNup CalcAddinThr-ORIG/CalcAddinSpread.cxx CalcAddinThr/CalcAddinSpread.cxx
--- CalcAddinThr-ORIG/CalcAddinSpread.cxx 2013-01-28 21:06:03.000000000 +0100
+++ CalcAddinThr/CalcAddinSpread.cxx 2013-02-11 13:44:07.084994239 +0100
@@ -2,6 +2,7 @@
#include <stdio.h>
#include <sys/time.h>
#include <cerrno>
+#include <unistd.h>
#include <osl/thread.h>
diff -rNup CalcAddinThr-ORIG/Makefile CalcAddinThr/Makefile
--- CalcAddinThr-ORIG/Makefile 2013-01-29 16:05:08.000000000 +0100
+++ CalcAddinThr/Makefile 2013-02-11 13:48:19.809852794 +0100
@@ -26,20 +26,7 @@ libCalcAddinThr.so: CalcAddinThr_impl.o
g++ -o libCalcAddinThr.so -shared \
-L$(OO_SDK_HOME)/lib -lpthread -luno_cppuhelpergcc3 CalcAddinThr_impl.o
CalcAddinSpread.o
-## calc.uno.so is listed in calcuno.rdb. use make run to execute
-calc.uno.so : calcuno.cxx calcCommon.h
- gcc -c -fpic -fvisibility=hidden -O -I. -I $(OO_SDK_OUT)/LINUXexample.out/inc -I
$(OO_SDK_OUT)/LINUXexample.out/inc/examples -I$(OO_SDK_HOME)/include -DUNX -DGCC -DLINUX
-DCPPU_ENV=gcc3
-DGXX_INCLUDE_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6
-DHAVE_GCC_VISIBILITY_FEATURE -o calcuno.o calcuno.cxx
- g++ -shared '-Wl,-rpath,$ORIGIN' -L$(OO_SDK_HOME)/lib -L$(OO_SDK_URE_HOME)/lib -o
calc.uno.so calcuno.o \
- -luno_cppuhelpergcc3 -luno_cppu -luno_sal
-
-regcomp.flag: libCalcAddinThr.so
- $(OO_SDK_URE_HOME)/bin/regcomp -register -r CalcAddinThr.rdb -c libCalcAddinThr.so
- touch regcomp.flag
-
-calccli : calccli.cpp
- g++ -I /work/loc1/include/ calccli.cpp -g -o calccli -L /work/loc1/lib -lev
-Wl,-rpath,/work/loc1/lib
-
-all: regcomp.flag calc.uno.so calccli
+all: libCalcAddinThr.so
install : all
/usr/bin/install -p libCalcAddinThr.so CalcAddinThr.rdb ${OFFICE_PROGRAM_PATH}/
@@ -51,5 +38,5 @@ run :
uno -env:URE_MORE_SERVICES=file://$(shell pwd)/calcuno.rdb -s
com.sun.star.bridge.example.RemoteClientSample -- "1"
clean:
- rm -rf com org *.o *.urd *.so *.flag *.oxt CalcAddinThr.rdb calccli
+ rm -rf com org *.o *.urd *.so *.flag *.oxt CalcAddinThr.rdb
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.