CASA Developers Meeting -- Friday, 09-June-2006

Wes Young Presents the CcmTools


Q: Add a parameter to the interface -- merge the stub with existing code?


I move my existing code over to a safe place. Re-generate stub with the new interface, move the existing (working) code over to the new interface (cut and paste), then recompile the new interface. If that works, then I cut-and-paste the business logic over from the existing code.

If you're just adding a single parameter to a function call, this safety net may not be necessary.

Q: If I were to write a "Hello World", what would I write?

A: You would write the XML input file, then write the Hello World C++ implementation in the C++ Impl. The headers are written for you.

Q: If I've made a mistake, how can I trace it from the XML Input file?

Q: Where would my Calibrator.h file go? It's in AIPS++ Libs?

A: You have to write the glue code in the C++ Impl file that will call the AIPS++ Libs. But it would make the list of methods based upon the XML Input file.

We Look At an XML Input File...

Q: What is an XML Schema?

A: It's a grammar for the XML data sets.

* Issue: Collisions between IDL keywords and our XML Grammar

Q: Are there output parameters?

A: Yes, different for different language bindings.

There are In-Out parameters...

Q: What part of this gets generated as .h file?

A: You'll be able to tell from the header file which part

We Look at a Generated .h File...

Q: Is there a way to insert the line numbers from the source XML file?

Q: The .h file is split into four things:

  • forward
  • private
  • something else
  • some other thing

Q: My opinion is that this is the hard way to handle private stuff; you shouldn't have to have the private stuff in the interface file.

A: You don't have to split things up into the four pieces, you can stick it into the .h file...

Q: I want this thing to become only the interface; I want to shove everything else down a layer. Some of the things that its doing I want to do better down a layer..

(This is us looking at the Calibrator)

If I can work entirely with capital-C Calibrator, then that's what I want to do.

RaymondRusk: I use the C++ test programs to test the Calibrator...

Trying to simplify versus the DAO implementation. For example at the top layer of the Calibrator, we want to pass the information about the data file to open on down to the lower layer, let it worry about the validity...

Q: Would these changes taht you're making require a new DAO?

A: Its going to make that file substantially smaller.

Q: Are you going to do that before the freeze or after? Before the freeze, you have to maintain the changes in two places, rather than after the freeze...

Q: Where is the document for which commands to type, exactly the process of developing a HelloCcmToolsWorld example?

Q: CcmExceptionHandling?

A: There is a line that will re-throw the line

Q: ACS interface and it throws to a FORTRAN program, how is that FORTRAN program going to handle that?

A: Generally, we don't know; ACS wrappers have already been implemented to wrap FORTRAN codes... the FORTRAN that's wrapped does not necessarily know about error handling...

Q: How does this compare to Boost for binding C++ to Python?


  • We don't want the C++ to know about Python.
  • We want other bindings besides Python
  • We think this is simpler

Q: How do you interrupt the Calibrator?

A: Control-C

Q: And then what happens? What state is the Calibrator going to be in?

A: You'll get returned to the Python prompt. If you're in a funny state, you'll be in a funny state...

Q: Is it possible to handle the Control-C to clean up state?

A: Well, for local process, you could write a signal handler, but we must consider the remotable case -- what happens if the thing that you're killing is a remote CORBA process? Does the (local) stub implement a handler that can send a terminate signal to the remote CORBA implmentation?

Q: ACS Binding we need for ALMA?

A: Yes, we need it for the pipeline.

Q: Who is supposed to run the Friday meetings from now on ?

A: Boyd is the one who gets the responsibility to cancel these meetings as of today.

Subject:  CASA Developer's Meeting
Created:  Fri, 09 Jun 2006 14:24:17 -0600
X-svn-Id: $Id: CasaDevelopersMeeting2006June09.txt,v 1.2 2006/06/09 22:05:36 KumarGolap Exp apache $
X-UUID:   D19465EC-F265-4CE6-933A-2918B01F03BF
Keywords: casa framework

-- egregious errors by BoydWaters - 09 Jun 2006
Topic revision: r2 - 2006-06-09, KumarGolap
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback