C/Skill interface sample

Guest
Hi
I see the itkdbase samples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you
 
Hi
Where can I find an example how to call dbCreateLine for C (from
itkdbase)?
Thank you
 
On Nov 26, 11:28 am, gvita...@gmail.com wrote:
Hi
Where can I find an example how to call dbCreateLine for C (from
itkdbase)?
Thank you
Did you check itkdbase.pdf? Maybe not too many examples, but if you
look at a skill dump of a regular schematic, you will probably find
some ideas how to do the programming with itk. I think you will find
some info on Sourcelink. I haven't done any programming with itk so
far so I don't have much more to say. (Maybe I should try one day if I
have a license for it....)

--
Svenn
 
On 21 Noi, 18:42, gvita...@gmail.com wrote:
Hi
I see the itkdbase samples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you
Hi, first I try to compile the samples from ../tools/itkDB/samples/DB
(and others samples), but I was receiving the following:
itkDB/lib/itkDB.a(dbIOinit.o)(.text+0x53a): In function `dbiInit':
: undefined reference to `__ctype_b'
..... and so on ....
.....

I solved this by changing the Makefile this way. I comment the
following lines from Makefile:

#ifeq ($(strip $(REL)),1) - commented
LOADLIBES = ${ITKDIR}/lib/itkDB.a $(CDSTOOLSDIR)/lib/
librh72compat.a
#else -
commented
#LOADLIBES = ${ITKDIR}/lib/itkDB.a - commented
#endif -
commented

Note: I use CentOs 4.4

The compilation was succesful

From all samples, only .../tools/itkDB/samples/CDF seems to do
something ...

Thank you
 
On 26 Noi, 12:28, gvita...@gmail.com wrote:
Hi
Where can I find an example how to call dbCreateLine for C (from
itkdbase)?
Thank you
I try to modify the main.c from .../tools/itkDB/samples/DB to draw a
simple line(test of dbCreateLine from C).
Example:
#main.c from .../tools/itkDB/samples/DB

..... the code above wasn't changed. I only changed the following ...
if ( !(cvId = dbOpenCellViewByType(argv[1], argv[2], (char*)"layout",
(char*)"maskLayout", (char*)"a", 0)) )
{
voFlushWarn();
exit( 1 );
}
dbPoint orgn[2]={{0,0},{10,10}};

dbCreateLine(cvId, 45, 252, 2, orgn); // the 45 and 252 is taken from
dump of technology file of "cell_design" tutorial ...(45 is for
"metal1" and 252 is for "drawing")

.... and so on, like in #main.c

but, I haven't see any line , maybe I do something wrong?

Thank you
 
On Nov 27, 8:47 am, gvita...@gmail.com wrote:
On 26 Noi, 12:28, gvita...@gmail.com wrote:

Hi
Where can I find an example how to call dbCreateLine for C (from
itkdbase)?
Thank you

I try to modify the main.c from .../tools/itkDB/samples/DB to draw a
simple line(test of dbCreateLine from C).
Example:
#main.c from .../tools/itkDB/samples/DB

.... the code above wasn't changed. I only changed the following ...
if ( !(cvId = dbOpenCellViewByType(argv[1], argv[2], (char*)"layout",
(char*)"maskLayout", (char*)"a", 0)) )
{
voFlushWarn();
exit( 1 );
}
dbPoint orgn[2]={{0,0},{10,10}};

dbCreateLine(cvId, 45, 252, 2, orgn); // the 45 and 252 is taken from
dump of technology file of "cell_design" tutorial ...(45 is for
"metal1" and 252 is for "drawing")

... and so on, like in #main.c

but, I haven't see any line , maybe I do something wrong?

Thank you
Evrica! I found :)
The problem was that in #main.c the dbSave(cvId) was called after
dbPurge(cvId) ...
so simple, he he

Thank you
 
On Nov 21, 6:42 pm, gvita...@gmail.com wrote:
Hi
I see the itkdbase samples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you
Hi
If I open a layout window, I can't access the database from itkdbase,
for example:
1. open a window (the layout.cdb.cdslock appear)
2. start the c/c++ executable that must draw a line in cellview

I get a warning, the cellview have access lock

If I close the window, and start c/c++ executable again,
and after open the window the cdba is changed with a line.

How can I draw something in layout window with a c/c++ executable
(itkdbase) if the window is previously open.

Thank you.
 
On Nov 30, 1:08 pm, gvita...@gmail.com wrote:
On Nov 21, 6:42 pm, gvita...@gmail.com wrote:

Hi
I see the itkdbase samples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you

Hi
If I open a layout window, I can't access the database from itkdbase,
for example:
1. open a window (the layout.cdb.cdslock appear)
2. start the c/c++ executable that must draw a line in cellview

I get a warning, the cellview have access lock

If I close the window, and start c/c++ executable again,
and after open the window the cdba is changed with a line.

How can I draw something in layout window with a c/c++ executable
(itkdbase) if the window is previously open.
Why would you? Have you looked into skipcref.pdf on the ipc*
functions? If you want to have a c program do work for you while you
look at it you could fork the program externally and have it send
skill commands to the parent icfb session.

I hope it will never be possible for any extrernal program to ignore
the cdslock. There is a reason why a layout is locked. Somebody is
working on it. Your c-program could seriously interfere with the work
of the current designer.

--
Svenn
 
gvitalie@gmail.com writes:

I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?
If I've understood you correctly, no.

Yours,

--
Jean-Marc
 
On 30 Noi, 14:22, Svenn Are Bjerkem <svenn.bjer...@googlemail.com>
wrote:
On Nov 30, 1:08 pm, gvita...@gmail.com wrote:



On Nov 21, 6:42 pm, gvita...@gmail.com wrote:

Hi
I see the itkdbase samples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you

Hi
If I open a layout window, I can't access the database from itkdbase,
for example:
1. open a window (the layout.cdb.cdslock appear)
2. start the c/c++ executable that must draw a line in cellview

I get a warning, the cellview have access lock

If I close the window, and start c/c++ executable again,
and after open the window the cdba is changed with a line.

How can I draw something in layout window with a c/c++ executable
(itkdbase) if the window is previously open.

Why would you? Have you looked into skipcref.pdf on the ipc*
functions? If you want to have a c program do work for you while you
look at it you could fork the program externally and have it send
skill commands to the parent icfb session.

I hope it will never be possible for any extrernal program to ignore
the cdslock. There is a reason why a layout is locked. Somebody is
working on it. Your c-program could seriously interfere with the work
of the current designer.

--
Svenn
Thank you, Svenn
I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?
 
On 30 Noi, 14:54, gvita...@gmail.com wrote:
On 30 Noi, 14:22, Svenn Are Bjerkem <svenn.bjer...@googlemail.com
wrote:



On Nov 30, 1:08 pm, gvita...@gmail.com wrote:

On Nov 21, 6:42 pm, gvita...@gmail.com wrote:

Hi
I see the itkdbase samples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you

Hi
If I open a layout window, I can't access the database from itkdbase,
for example:
1. open a window (the layout.cdb.cdslock appear)
2. start the c/c++ executable that must draw a line in cellview

I get a warning, the cellview have access lock

If I close the window, and start c/c++ executable again,
and after open the window the cdba is changed with a line.

How can I draw something in layout window with a c/c++ executable
(itkdbase) if the window is previously open.

Why would you? Have you looked into skipcref.pdf on the ipc*
functions? If you want to have a c program do work for you while you
look at it you could fork the program externally and have it send
skill commands to the parent icfb session.

I hope it will never be possible for any extrernal program to ignore
the cdslock. There is a reason why a layout is locked. Somebody is
working on it. Your c-program could seriously interfere with the work
of the current designer.

--
Svenn

Thank you, Svenn
I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?
Hm,I try, isn't posible :(
 
Thank you, Svenn
I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?
Make cell read-only before invoking your program.
 
On Nov 30, 1:54 pm, gvita...@gmail.com wrote:
On 30 Noi, 14:22, Svenn Are Bjerkem <svenn.bjer...@googlemail.com
wrote:



On Nov 30, 1:08 pm, gvita...@gmail.com wrote:

On Nov 21, 6:42 pm, gvita...@gmail.com wrote:

Hi
I see the itkdbase samples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you

Hi
If I open a layout window, I can't access the database from itkdbase,
for example:
1. open a window (the layout.cdb.cdslock appear)
2. start the c/c++ executable that must draw a line in cellview

I get a warning, the cellview have access lock

If I close the window, and start c/c++ executable again,
and after open the window the cdba is changed with a line.

How can I draw something in layout window with a c/c++ executable
(itkdbase) if the window is previously open.

Why would you? Have you looked into skipcref.pdf on the ipc*
functions? If you want to have a c program do work for you while you
look at it you could fork the program externally and have it send
skill commands to the parent icfb session.

I hope it will never be possible for any extrernal program to ignore
the cdslock. There is a reason why a layout is locked. Somebody is
working on it. Your c-program could seriously interfere with the work
of the current designer.

--
Svenn

Thank you, Svenn
I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?
If you have some serious process and time consuming work going on in
that c++ program I can understand why you would program this in c++.
If you just want to have some kind of way to automate layout drawing
of large repetitive structures this is maybe best done directly in
skill, or if you want to use another, easier scripting language, use
the ipc* functions to start an external process, define callback
functions to communicate with that process and have that process
generate more simple skill commands which are sent back to the mother
process. The "lisp and back again" document from Christopher Nelson
(currently only in google cache) show you how to create your own CIW
window in tcl/tk. This solution is a bit old and uses old function
calls, but the idea is still valid.

Just wanting to draw layout from a c++ program doesn't make much sense
to me so you will have to explain a bit more about what you want to do
if you want to get better answers than you have got so far.
--
Svenn
 
On Nov 30, 4:07 pm, "S. Badel" <stephane.ba...@REMOVETHISepfl.ch>
wrote:
Thank you, Svenn
I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?

Make cell read-only before invoking your program.
Thank you S.Badel
I tried to open cellview in read-only mode, then execute the c/c++,
but changes apears only when I changed back cellview to "... Editable"
This mean, that I must to switch every time before executing c/c++ to
read-only mode, and after to "editable",
and I can't modify interactively with c/c++ the layout design in read-
only mode.
 
On Dec 3, 10:25 am, gvita...@gmail.com wrote:

I tried to open cellview in read-only mode, then execute the c/c++,
but changes apears only when I changed back cellview to "... Editable"
This mean, that I must to switch every time before executing c/c++ to
read-only mode, and after to "editable",
and I can't modify interactively with c/c++ the layout design in read-
only mode.
Problem is that the layout you have read-only is in virtual memory,
and your c++-program is changing on disk. You need to refresh your
data in order to see the changes. You can do this without going into
edit mode by CIW->File->Refresh or libMgr->View->Refresh.
But this is also not interactive. You keep your cards so tight to your
chest regarding what you are really doing so it is hard to help you
with ideas other than what has already been suggested.

--
Svenn
 
On Dec 2, 4:52 am, Svenn Are Bjerkem <svenn.bjer...@googlemail.com>
wrote:
On Nov 30, 1:54 pm, gvita...@gmail.com wrote:



On 30 Noi, 14:22, Svenn Are Bjerkem <svenn.bjer...@googlemail.com
wrote:

On Nov 30, 1:08 pm, gvita...@gmail.com wrote:

On Nov 21, 6:42 pm, gvita...@gmail.com wrote:

Hi
I see theitkdbasesamples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you

Hi
If I open a layout window, I can't access the database fromitkdbase,
for example:
1. open a window (the layout.cdb.cdslock appear)
2. start the c/c++ executable that must draw a line in cellview

I get a warning, the cellview have access lock

If I close the window, and start c/c++ executable again,
and after open the window the cdba is changed with a line.

How can I draw something in layout window with a c/c++ executable
(itkdbase) if the window is previously open.

Why would you? Have you looked into skipcref.pdf on the ipc*
functions? If you want to have a c program do work for you while you
look at it you could fork the program externally and have it send
skill commands to the parent icfb session.

I hope it will never be possible for any extrernal program to ignore
the cdslock. There is a reason why a layout is locked. Somebody is
working on it. Your c-program could seriously interfere with the work
of the current designer.

--
Svenn

Thank you, Svenn
I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?

If you have some serious process and time consuming work going on in
that c++ program I can understand why you would program this in c++.
If you just want to have some kind of way to automate layout drawing
of large repetitive structures this is maybe best done directly in
skill, or if you want to use another, easier scripting language, use
the ipc* functions to start an external process, define callback
functions to communicate with that process and have that process
generate more simple skill commands which are sent back to the mother
process. The "lisp and back again" document from Christopher Nelson
(currently only in google cache) show you how to create your own CIW
window in tcl/tk. This solution is a bit old and uses old function
calls, but the idea is still valid.

Just wanting to draw layout from a c++ program doesn't make much sense
to me so you will have to explain a bit more about what you want to do
if you want to get better answers than you have got so far.
--
Svenn
Hi, Svenn and Thank You
The ideia is that I have something done in skill, that draw
interactively, real time design drc check, and I want to make it
faster by writting the process consuming code in c/c++. For test, I do
a simple c/c++ program that draw grid lines (dbCreateLine ...) and
call the c/c++ executable from a gui that was maded in skill also.
[callback is with ipcBeginProcess(sprintf(nil "./gridlines %s %s %d
%d %d" lib cell vert_grid horiz_grid step))], where "./gridlines" is c/
c++ executable.
But, if I open a layout window first, I can't access interactively
from c/c++ the cdba of that layout window, I get a warrning with
access, file layout.cdb.cdslock.

I need a solution, any ideas are welcome
Thank you all
 
On Dec 3, 10:55 am, gvita...@gmail.com wrote:
On Dec 2, 4:52 am, Svenn Are Bjerkem <svenn.bjer...@googlemail.com
wrote:



On Nov 30, 1:54 pm, gvita...@gmail.com wrote:

On 30 Noi, 14:22, Svenn Are Bjerkem <svenn.bjer...@googlemail.com
wrote:

On Nov 30, 1:08 pm, gvita...@gmail.com wrote:

On Nov 21, 6:42 pm, gvita...@gmail.com wrote:

Hi
I see theitkdbasesamples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you

Hi
If I open a layout window, I can't access the database fromitkdbase,
for example:
1. open a window (the layout.cdb.cdslock appear)
2. start the c/c++ executable that must draw a line in cellview

I get a warning, the cellview have access lock

If I close the window, and start c/c++ executable again,
and after open the window the cdba is changed with a line.

How can I draw something in layout window with a c/c++ executable
(itkdbase) if the window is previously open.

Why would you? Have you looked into skipcref.pdf on the ipc*
functions? If you want to have a c program do work for you while you
look at it you could fork the program externally and have it send
skill commands to the parent icfb session.

I hope it will never be possible for any extrernal program to ignore
the cdslock. There is a reason why a layout is locked. Somebody is
working on it. Your c-program could seriously interfere with the work
of the current designer.

--
Svenn

Thank you, Svenn
I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?

If you have some serious process and time consuming work going on in
that c++ program I can understand why you would program this in c++.
If you just want to have some kind of way to automate layout drawing
of large repetitive structures this is maybe best done directly in
skill, or if you want to use another, easier scripting language, use
the ipc* functions to start an external process, define callback
functions to communicate with that process and have that process
generate more simple skill commands which are sent back to the mother
process. The "lisp and back again" document from Christopher Nelson
(currently only in google cache) show you how to create your own CIW
window in tcl/tk. This solution is a bit old and uses old function
calls, but the idea is still valid.

Just wanting to draw layout from a c++ program doesn't make much sense
to me so you will have to explain a bit more about what you want to do
if you want to get better answers than you have got so far.
--
Svenn

Hi, Svenn and Thank You
The ideia is that I have something done in skill, that draw
interactively, real time design drc check, and I want to make it
faster by writting the process consuming code in c/c++. For test, I do
a simple c/c++ program that draw grid lines (dbCreateLine ...) and
call the c/c++ executable from a gui that was maded in skill also.
[callback is with ipcBeginProcess(sprintf(nil "./gridlines %s %s %d
%d %d" lib cell vert_grid horiz_grid step))], where "./gridlines" is c/
c++ executable.
But, if I open a layout window first, I can't access interactively
from c/c++ the cdba of that layout window, I get a warrning with
access, file layout.cdb.cdslock.

I need a solution, any ideas are welcome
Your problem is that the c-code is trying to change the db while the
editor is also changing the db. This is never going to work the way
you want it to work. Since you already use ipc* to start your c-code,
you should extend the ipc* part with callbacks to read the file
handles written by your c-code, and then have the c-code send skill
code to its child write handle (I think it is 3 or 4, but that is
given in the example in the skipcref.pdf document.) The idea is the
same as the one described for tcl/tk in "lisp and back again", but you
will use c instead of tclx.
If you insist on accessing the db through c, then you could use the
child handles to make the c-code tell icfb to go read-only, make the
changes through c-api, then tell icfb to refresh or go to edit mode.
You have to implement some kind of hand-shake between your c-code and
icfb in order to open and close the view for editing as you cannot
have two editors at the same time.
You can, of course, have your c-program just delete that cdslock
because you know that you have saved your data back to disk, but I
think that will be more evil than good programming.

Is your c-code running in client-server skill mode, or are you firing
off the procedure every time? (use of ipcBeginProcess looks very much
like the last). Look at ipcSkillProcess and the programming example in
skipcref.pdf. for the client-server type communication. Andrew has
also provided the code for a tcl server here that create a deamon you
can talk to with telnet.
I am currently looking at doing the same with python, but not for
speed issues, it is more a fun project in order to see if I can have
an easier way to collect frequently done procedures in an environment
outside icfb. I don't expect this project to finish anytime soon. I
chose python as OpenAccess is supposed to have a python API but we are
currently using cdb.
--
Svenn
 
On Dec 3, 12:18 pm, Svenn Are Bjerkem <svenn.bjer...@googlemail.com>
wrote:
On Dec 3, 10:55 am, gvita...@gmail.com wrote:



On Dec 2, 4:52 am, Svenn Are Bjerkem <svenn.bjer...@googlemail.com
wrote:

On Nov 30, 1:54 pm, gvita...@gmail.com wrote:

On 30 Noi, 14:22, Svenn Are Bjerkem <svenn.bjer...@googlemail.com
wrote:

On Nov 30, 1:08 pm, gvita...@gmail.com wrote:

On Nov 21, 6:42 pm, gvita...@gmail.com wrote:

Hi
I see theitkdbasesamples from Cadence, but I don't know how to use
them ...

It is somewhere a detailed description how to use those samples? (Or
similar anothers)
Thank you

Hi
If I open a layout window, I can't access the database fromitkdbase,
for example:
1. open a window (the layout.cdb.cdslock appear)
2. start the c/c++ executable that must draw a line in cellview

I get a warning, the cellview have access lock

If I close the window, and start c/c++ executable again,
and after open the window the cdba is changed with a line.

How can I draw something in layout window with a c/c++ executable
(itkdbase) if the window is previously open.

Why would you? Have you looked into skipcref.pdf on the ipc*
functions? If you want to have a c program do work for you while you
look at it you could fork the program externally and have it send
skill commands to the parent icfb session.

I hope it will never be possible for any extrernal program to ignore
the cdslock. There is a reason why a layout is locked. Somebody is
working on it. Your c-program could seriously interfere with the work
of the current designer.

--
Svenn

Thank you, Svenn
I want to interactively change the layout window from C/C++(itkdbase).
I don't need to send skill commands from c/c++ with ipc*.
If I could get the rezult returned by cv=dbOpenCellViewByType(...)
from icfb to C/C++,
maybe I could draw somthing [dbCreateLine(cv, ..., ...)] in window
also interactively.
It's that posible?

If you have some serious process and time consuming work going on in
that c++ program I can understand why you would program this in c++.
If you just want to have some kind of way to automate layout drawing
of large repetitive structures this is maybe best done directly in
skill, or if you want to use another, easier scripting language, use
the ipc* functions to start an external process, define callback
functions to communicate with that process and have that process
generate more simple skill commands which are sent back to the mother
process. The "lisp and back again" document from Christopher Nelson
(currently only in google cache) show you how to create your own CIW
window in tcl/tk. This solution is a bit old and uses old function
calls, but the idea is still valid.

Just wanting to draw layout from a c++ program doesn't make much sense
to me so you will have to explain a bit more about what you want to do
if you want to get better answers than you have got so far.
--
Svenn

Hi, Svenn and Thank You
The ideia is that I have something done in skill, that draw
interactively, real time design drc check, and I want to make it
faster by writting the process consuming code in c/c++. For test, I do
a simple c/c++ program that draw grid lines (dbCreateLine ...) and
call the c/c++ executable from a gui that was maded in skill also.
[callback is with ipcBeginProcess(sprintf(nil "./gridlines %s %s %d
%d %d" lib cell vert_grid horiz_grid step))], where "./gridlines" is c/
c++ executable.
But, if I open a layout window first, I can't access interactively
from c/c++ the cdba of that layout window, I get a warrning with
access, file layout.cdb.cdslock.

I need a solution, any ideas are welcome

Your problem is that the c-code is trying to change the db while the
editor is also changing the db. This is never going to work the way
you want it to work. Since you already use ipc* to start your c-code,
you should extend the ipc* part with callbacks to read the file
handles written by your c-code, and then have the c-code send skill
code to its child write handle (I think it is 3 or 4, but that is
given in the example in the skipcref.pdf document.) The idea is the
same as the one described for tcl/tk in "lisp and back again", but you
will use c instead of tclx.
If you insist on accessing the db through c, then you could use the
child handles to make the c-code tell icfb to go read-only, make the
changes through c-api, then tell icfb to refresh or go to edit mode.
You have to implement some kind of hand-shake between your c-code and
icfb in order to open and close the view for editing as you cannot
have two editors at the same time.
You can, of course, have your c-program just delete that cdslock
because you know that you have saved your data back to disk, but I
think that will be more evil than good programming.

Is your c-code running in client-server skill mode, or are you firing
off the procedure every time? (use of ipcBeginProcess looks very much
like the last). Look at ipcSkillProcess and the programming example in
skipcref.pdf. for the client-server type communication. Andrew has
also provided the code for a tcl server here that create a deamon you
can talk to with telnet.
I am currently looking at doing the same with python, but not for
speed issues, it is more a fun project in order to see if I can have
an easier way to collect frequently done procedures in an environment
outside icfb. I don't expect this project to finish anytime soon. I
chose python as OpenAccess is supposed to have a python API but we are
currently using cdb.
--
Svenn
Thank You again, Svenn
This info is very usefull for me
I will write, what way I choose.
 

Welcome to EDABoard.com

Sponsor

Back
Top