|
Developer Documentation |
|
Centre for Vision, Speech & Signal Processing |
|
PUBLIC |
ConvertVCPP::ConvertVCPP(FilenameC,FilenameC,FilenameC,StringC,StringC,StringC,BooleanT,BooleanT,BooleanT,BooleanT)
ConvertVCPP::NewSrc(FilenameC,BooleanT)
ConvertVCPP::DoOp(void)
ConvertVCPP::Update(FilenameC,RCSFileC &)
ConvertVCPP::CreateProjectFiles(const StringC &,const StringC &)
ConvertVCPP::CreateWorkspaceFile(void)
ConvertVCPP::CreateAMMAported(const StringC &,const StringC &)
SrcCheckC::NewSrc(FilenameC,BooleanT)
SrcCheckC::LoadNested(BooleanT,BooleanT,IntT)
SrcCheckC::DoOp(void)
SrcCheckC::MissingSubDir(StringC &)
SrcCheckC::DoNested(BooleanT)
SrcCheckC::IsEnabled(void) const
SrcCheckC::IsVerbose(void) const
SrcCheckC::SetVerbose(BooleanT)
SrcCheckC::CWD(void) const
SrcCheckC::Defs(void)
SrcCheckC::SetSkipSubdir(BooleanT)
BodyRefCounterC::AddReference(void)
BodyRefCounterC::RemoveReference(void)
BodyRefCounterC::SetConst(void) const
BodyRefCounterC::SetConst(void)
BodyRefCounterC::IsConst(void) const
BodyRefCounterC::IsNotConst(void) const
BodyRefCounterC::ToBeDeleted(void) const
BodyRefCounterC::ToBeDeletedRemoveIgnoreNoRemove(void)
BodyRefCounterC::ToBeDeletedRemove(void)
BodyRefCounterC::BodyMightBeDeleted(void) const
BodyRefCounterC::IsCountZero(void) const
BodyRefCounterC::BRCPtrCanDeleteObject(void) const
BodyRefCounterC::Count(void) const
BodyRefCounterC::operator=(const BodyRefCounterC &)
BodyRefCounterC::IsValidObject(void) const
BodyRefCounterC::UserBitTest(IntT) const
BodyRefCounterC::UserBitSet(IntT,BooleanT)
BodyRefCounterC::UserBitZero(IntT)
BodyRefCounterC::ReportBRCError(char *)
BodyRefCounterC::Hash(void) const
BodyRefCounterC::SetUndeletable(void)
BodyRefCounterC::ReportInvalidObject(char *) const
RefCounterBaseC::Label(void) const
|
Comments:
ConvertVCPP is a utility designed to take a amma style src tree with
defs.mk files and generate a tree suitable to compilation under
Visual C++ with workspace and project files.
There is also a 'putback' option which enables files in this tree
to be copied 'backwards' if changes need to be propagated back onto Unix.
The necessary files are the workspace file, produced as amma.dsw in
the root directory and a series of project files which are complex
and contain a variety of switches and libraries. Project files
which can be created are "static library" and "console application"
To create new template files get them from Visual then
- replace any $(CFG) by $$(CFG)
- replace explicit paths by
$(PROJECT_NAME)
$(TEMP_PATH)
$(VCPP_SRC_ROOT)
$(ALL_THE_SRC_FILES)
TAKE EXTRA CARE WITH DOS STYLE \r\n - IT MATTERS!
Notes on meaning of VCPP compile switches:
.....
There are 3 major tasks to perform
(1) LoadNested(..); (baseclass)
read the defs files and load info on all the unix src files
(2) DoNested(...); (baseclass)
goes thru all the files and calls DoOp as provided in ConvertVCPP
i.e. all the file copying forward or backwards
(3) CreateProjectFiles();
CreateWorkspaceFile();
-----------------------------------------------------------------------------
Parent Classes:
Variables:
- FilenameC root;
-
Root of output.
- FilenameC work;
-
Current output directory.
- StringC dosdrive;
-
e.g. d
- StringC dospath;
-
e.g. /user/me/amma/thisworkspace
so the total dos path will be d:/user/me/amma/thisworkspace
it is assumed the VCPP is always happy with unix / not dos slash
- StringC dostemp;
-
e.g. d:/temp
- StringC arrow;
-
Which way we are going ?
- BooleanT putBack;
-
Put files back.
- BooleanT execs;
-
do the executables as well, one project per executable
- BooleanT one;
-
one library
Methods:
- ConvertVCPP(FilenameC nDir,FilenameC nRoot,FilenameC nWork,StringC ndosdrive,StringC ndospath,StringC ndostemp,BooleanT pback,BooleanT doexecs,BooleanT doone,BooleanT Enabled = TRUE)
-
Constructor
nDir : is the directory in which a defs.mk file will be loaded, this
defines the unix src tree
nRoot : is the unix directory where the VCPP workspace will be written to (read from)
nWork : is the unix directory where the VCPP src files will be written to (read from)
pback : when TRUE the operation is run in reverse
ndosdrive : dos drive letter, no colon
ndospath : dos path, should start without and end without a /, unix / not dos \ OK
ndostemp : dos path for temp, e.g. D:/temp
Enabled : ??
- BRCPtrC<SrcCheckC> NewSrc(FilenameC dir,BooleanT Enabled = TRUE)
-
Open a new directory.
- BooleanT DoOp()
-
The is called for each directory in the unix src tree.
It should return TRUE=Continue, FALSE=Abort.
1. makes sures all directories exist
2. changes vcpp filenames to lower case
- BooleanT Update(FilenameC vcpp,RCSFileC & mainLine)
-
Given the VCPP filename (on a unix disk) and the amma filename this
routine does the forward or reverse copy.
- the latest amma src is checked out
- on the way back to unix \LF characters are stripped
- void CreateProjectFiles(const StringC & StaticLibTemplate,const StringC & ConsoleAppTemplate)
-
Create the project files .dsp.
Template files must be provided
A project is either a static library or a console application
- void CreateWorkspaceFile()
-
Create the workspace file amma.dsw and Proj.lst
- void CreateAMMAported(const StringC & StaticLibTemplate,const StringC & AMMAported)
-
This creates an AMMAported.dsw workspace file of all successfully AMMA ported libraries
If you want to add a ported library to the list edit the AMMAported file in the source dir
- BRCPtrC<SrcCheckC> NewSrc(FilenameC dir,BooleanT Enabled = TRUE)
-
Open a new directory.
- BooleanT LoadNested(BooleanT recurse = TRUE,BooleanT loadAll = FALSE,IntT CurDepth = 0)
-
Load all sub-directories.
- BooleanT DoOp()
-
Do operation on local directory.
Return
TRUE=Continue.
FALSE=Abort.
- BooleanT MissingSubDir(StringC & dirName)
-
Called if sub directory missing.
- BooleanT DoNested(BooleanT all = FALSE)
-
Call DoOp on subdirectories.
if all is true then even disabled directories
are processed. This routine will return TRUE, if
all the DoOp's succeded.
- BooleanT IsEnabled() const
-
Has directory been enabled ?
- BooleanT IsVerbose() const
-
In verbose mode ?
- void SetVerbose(BooleanT v)
-
Set verbose mode.
- FilenameC CWD() const
-
Get Current Working Directory.
- DefMkFileC & Defs()
-
Access def.mk info.
- void SetSkipSubdir(BooleanT val)
-
Set Skip Subdirectory flag.
- void AddReference()
-
Another reference to the object has been created.
- void RemoveReference()
-
One reference to the object was deleted.
Locking scheme
--------------
The object is possible to lock (to make constant). The scheme
assumes that the object is created, it can be locked, after that
it can only be destroyed. The locked object cannot be unlocked.
This locking scheme is very useful
during debugging, using assert() function,
when it is necassary to check that object
is treated as constant and the constancy is not violated by
any casting or passing through the copy constructor of shared
objects.
- void SetConst(void) const
-
This locks the object.
Often objects you wish to lock are already const.
- void SetConst(void)
-
This locks the object.
- BooleanT IsConst(void) const
-
Returns TRUE if the object is locked, ie. it is assumed to be constant.
- BooleanT IsNotConst(void) const
-
Returns TRUE if the object is unlocked.
ie. there is no special
information if the object is constant or not.
Counter state information
-------------------------
- BooleanT ToBeDeleted() const
-
Returns TRUE if there is only one reference to the object and the whole object or its reference counting part can be deleted.
- BooleanT ToBeDeletedRemoveIgnoreNoRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object.
- BooleanT ToBeDeletedRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object. This also checks the NoRemove flag.
- BooleanT BodyMightBeDeleted() const
-
Returns TRUE if the reference counted part of the object can be deleted, ie. flag NOREMOVE is false .
- BooleanT IsCountZero() const
-
Are there any refrences left ?
- BooleanT BRCPtrCanDeleteObject() const
-
Used by BRRCPtrC to establish if an object has ZERO refrences and can be deleted.
- IntT Count() const
-
Returns the current state of the counter, ie. how many references to this object exist.
- const BodyRefCounterC & operator=(const BodyRefCounterC & b)
-
It has not meaning to assign object 'b' to this object because it would destroy a history of the object which is counted. So this is a dummy function.
- BooleanT IsValidObject() const
-
Test if object is valid.
When amma check is disabled this always returns true.
- BooleanT UserBitTest(IntT x) const
-
Test user flag.
- void UserBitSet(IntT x,BooleanT setit = TRUE)
-
Test user flag.
- void UserBitZero(IntT x)
-
Set bit to zero.
- void ReportBRCError(char * Msg)
-
Report error, used in BRCPtrC.
- UIntT Hash() const
-
Hash on address of object.
- void SetUndeletable()
-
Make object undeletable.
Usefull to prevent recursive deleting in graph structures.
Only hackers need this function.
- void ReportInvalidObject(char * Msg = 0) const
-
Tell user about validation failure.
- LabelT Label() const
-
Returns the label of this reference counter.
The member function
is useful mainly to recognize objects during debugging.
The value of the label is uniquely defined pointer.
|
Programmer:Charles Galambos, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001
|