13 may 2002 Status report
-----------------------------

As work with CVS proved not to be as easy as I had thought, I will use Igor'
s channel
to check the my files in and out. So, do not be surprised to find my updates
checked in
by user Igor.

I.
I added an icon File Transfer service. Its bitmaps are ft.bmp and
ft_sel.bmp. When open,
the tabs appear: "Status", "Send a File..." and "Receive a file". At the
time being, I am busy
with implementing the "Send a File..." functionality. When user presses the
"Send File"
button, a dialog pops up reading "Choose File to Transfer for *UserName*"
(as described
in the Specification). File size is displayed in KB. Q: do I have to
consider one KB contain
1024 bytes (as commonly adopted) or 1000 (somebody likes this best)?
Personally I prefer
1024. The same question will relate MB when considering the "Receive a file"
tab.

II.
"Status" tab. The Spec says it should monitor ALL the File Transfer activity
within the lan.
The FT processes that the current machine is invoked in have "Cancel"
buttons. This approach
has the following issues:
- Broadcasts are required to notify all the lan of initiation and progress
of all the FT process,
which, I am afraid, might substantially affect both the lan traffic and
Kaboodle efficiency.
- FT monitoring gui will look rather cumbersome: as user opened "Status" tab
they see
something like:
1 <FROM USER A> <TO USER B> <FILE_1> <progress bar..........     >
...
m <FROM ME>     <TO USER C> <FILE_M> <progress bar.....          >  [CANCEL]
n <FROM ME>     <TO USER D> <FILE_N> <progress bar.              >  [CANCEL]

Imagine. User wants to cancel transfer of his file <FILE_M>, he moves the
mouse pointer
above the Cancel button. At that, process 1 finishes. If Kaboodle performs a
1 line scroll,
user may miss the proper button and click the wrong one. To avoid mistakes,
Kaboodle should
not perform such scrolls until closed. In that case, as Kaboodle monitors
all lan FT activity,
the number of lines will constantly grow and user will have to scroll
through them.
Bottom line: monitoring of the entire lan FT activity will substantially
complicate both socket
programming and user interface.

My suggestion consists in the following. At the beginning stage, we
implement monitoring of
those files being transferred to and from the given machine only rather than
the entire lan.


III.
When I was inserting the File Transfer service icon, I came across some
redundant code. Thus,
functions:
CEFIcon *AddVPN(CGUID id, CString name);
CEFIcon *AddVNC(CGUID id, CString name);
only differ in two integer constants. I had to add my own function
CEFIcon *AddFT(CGUID id, CString name);
which, if follow the logic suggested, would make me copy the function body
once again. I
chose not to do so but retrofit the original function so to eliminate the
redundant code and
provide feasible icon updates in future. My new function is
CEFIcon* AddServiceIcon(CGUID id, const CString& rStrName, UINT uiBmp, UINT
uiBmpSel);
and all the three above functions now delegate the calls to that one:
CEFIcon *AddVPN(CGUID id, CString name);
CEFIcon *AddVNC(CGUID id, CString name);
CEFIcon *AddFT(CGUID id, CString name);

The same issue was encountered in the classes:
class CNIDVNCService : public CNIDService
class CNIDVPNService : public CNIDService
I moved the common functionality into the base class (which had already
existed) and derived
my own class
class CNIDFTService : public CNIDService
All the obsolete source code is left on in comments.

IV.
Enclosed is a sample gui written in MFC as stand-alone executable.

-Oleg


_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
Kaboodle-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kaboodle-devel

Reply via email to