- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: C++ and system routines
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-12-2003 06:16 AM
тАО08-12-2003 06:16 AM
I keep getting an incompatibility error when I try to use any of AST system routines :
&ClientConnectAST,
.......................^
%CXX-E-INCOMPATIBLEPRM, argument of type "void (CSocketClient::*)()" is incompatible with parameter of type "void (*)(...) C"
The sys$qio C prototype is defined as follows:
int sys$qio (unsigned int efn, unsigned short int chan, unsigned int func, struct IOSB_T *iosb, void (*astadr)(__unknown_params), __int64 astprm, void *p1, __int64 p2,
__int64 p3, __int64 p4, __int64 p5, __int64 p6);
I have a class called CSocketClient and a member function called void CSocketClient::ClientConnectAST() which submits the QIO as follows:
status = sys$qio( 0,
TCPChannel,
(IO$_SETMODE|IO$M_CTRL|IO$M_STARTUP),
&connect_iosb,
&ClientConnectAST,
0,
0,
&ecb_dsc,
0,0,0,0);
My question is how do I get the above QIO to execute my member function ClientConnectAST !
I have tried passing the member function as a pointer to the call but I still get the same error. The only work around I could get working was to declare ClientConnectAST as a static method, but the problem with that is I lose all the memeber data unless I declare all the objects global - yuk !
Please can anyone help ?? I need to use AST a lot in my programmes for timers as well.
Thank-you for any help in advance.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-14-2003 06:21 AM
тАО08-14-2003 06:21 AM
Re: C++ and system routines
I read my old C & VAX documentation; i think it is not changed the list parameters.
QIO system service require:
1) efn (event flag): you supply 0, it's right;
2) chan (I/O channel): you supply TCPChannel, it's right;
3) func (function code). you supply SETMODE with M_CTRL and M_STARTUP; ok i don't know the meaning for TCP/IP but SETMODE (that's active AST attention) require AST address to param P1 and I think M_CRTL is simila to M_CRTLCAST of TT driver.
4) iosb (I/O status block): you supply connect_iosb and i think it's right.
5) astadr (AST mask address): you supply ClientConnectAST and you declare it's a C/C++ function. But this is incorrect because you have supply a address of a mask of bits for activate AST (read documentation for format of this parameter). This is wrong!
6) astprm (AST parameter): I never used this, you supply 0, it's Ok.
7) P1 (parameter 1): you supply null but this parameter have to pointer to a your AST C/C++ function (I think ClientConnectAST).
8) P2 (parameter 2) devending by function: read documentation.
9) P3 etc, etc, read and read again your documentation.
This is a few notice I can help you.
Post the result a pay fee assign some points.
Bye
Antoniov
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-14-2003 07:30 AM
тАО08-14-2003 07:30 AM
Re: C++ and system routines
When do you want the AST routine to be called? If you want it to fire as soon as the set-up I/O completes, then you have it in the correct location in your arg list. If you want want it to fire whenever the CTRL or STARTUP events take place, then I think Antoniov's comment #5 is correct.
I'm not that familiar with C++, but a static routine sounds like exactly what you'd need. An AST could complete anytime your program is running, regardless of what's in or out of scope at the moment.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-14-2003 07:40 AM
тАО08-14-2003 07:40 AM
Solutionhttp://h18000.www1.hp.com/support/asktima/appl_tools/CHAMP_SRC941115001693.html
http://h18000.www1.hp.com/support/asktima/appl_tools/CHAMP_SRC950410005022.html
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО09-30-2003 11:02 PM
тАО09-30-2003 11:02 PM
Re: C++ and system routines
[TCP/IP] Example-C++ World Wide Web HTML file reader.
available at
(url may wrap)
http://h18000.www1.hp.com/support/asktima/communications/009E66D8-5F3A29A0-1C0096.html
Hoping this can help.