windows/SysLegacyAPI.cpp
Go to the documentation of this file.
1 /*----------------------------------------------------------------------------*/
2 /* */
3 /* Copyright (c) 1995, 2004 IBM Corporation. All rights reserved. */
4 /* Copyright (c) 2005-2009 Rexx Language Association. All rights reserved. */
5 /* */
6 /* This program and the accompanying materials are made available under */
7 /* the terms of the Common Public License v1.0 which accompanies this */
8 /* distribution. A copy is also available at the following address: */
9 /* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */
10 /* */
11 /* Redistribution and use in source and binary forms, with or */
12 /* without modification, are permitted provided that the following */
13 /* conditions are met: */
14 /* */
15 /* Redistributions of source code must retain the above copyright */
16 /* notice, this list of conditions and the following disclaimer. */
17 /* Redistributions in binary form must reproduce the above copyright */
18 /* notice, this list of conditions and the following disclaimer in */
19 /* the documentation and/or other materials provided with the distribution. */
20 /* */
21 /* Neither the name of Rexx Language Association nor the names */
22 /* of its contributors may be used to endorse or promote products */
23 /* derived from this software without specific prior written permission. */
24 /* */
25 /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
26 /* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
27 /* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
28 /* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
29 /* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
30 /* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
31 /* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
32 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */
33 /* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
34 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
35 /* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
36 /* */
37 /*********************************************************************/
38 #include "rexx.h"
39 
40 /*********************************************************************/
41 /* */
42 /* Function: RexxPullQueue() */
43 /* */
44 /* Description: Pull an entry from a queue. */
45 /* */
46 /* Function: Locate the queue, return its top entry to */
47 /* the caller, and tell the queue data */
48 /* manager to delete the entry. */
49 /* */
50 /* If the queue is empty, the caller can elect */
51 /* to wait for someone to post an entry. */
52 /* */
53 /* Notes: Caller is responsible for freeing the returned */
54 /* memory. */
55 /* */
56 /* The entry's control block is stored in the */
57 /* entry's memory. We must therefore obtain */
58 /* addressability to the entry's memory before */
59 /* we can process the entry. */
60 /* */
61 /* Input: external queue name, wait flag. */
62 /* */
63 /* Output: queue element, data size, date/time stamp. */
64 /* */
65 /* Effects: Top entry removed from the queue. Message */
66 /* queued to the queue data manager. */
67 /* */
68 /*********************************************************************/
70  const char *name,
71  PRXSTRING data_buf,
72  SYSTEMTIME *dt,
73  size_t waitflag)
74 {
75  RexxQueueTime time;
76 
77  RexxReturnCode rc = RexxPullFromQueue(name, data_buf, &time, waitflag);
78  // we need to convert the time stamp, if requested
79  if (dt != NULL)
80  {
81  dt->wYear = time.year;
82  dt->wMonth = time.month;
83  dt->wDay = time.day;
84  dt->wHour = time.hours;
85  dt->wMinute = time.minutes;
86  dt->wSecond = time.seconds;
87  dt->wMilliseconds = (WORD)(time.microseconds / 1000);
88  dt->wDayOfWeek = time.weekday;
89  }
90  return rc;
91 }
RexxReturnCode REXXENTRY RexxPullFromQueue(CONSTANT_STRING, PRXSTRING, RexxQueueTime *, size_t)
int RexxReturnCode
Definition: rexx.h:73
uint32_t microseconds
Definition: rexx.h:248
uint16_t year
Definition: rexx.h:246
uint16_t seconds
Definition: rexx.h:242
uint16_t day
Definition: rexx.h:244
uint16_t month
Definition: rexx.h:245
uint16_t hours
Definition: rexx.h:240
uint16_t minutes
Definition: rexx.h:241
uint16_t weekday
Definition: rexx.h:247
#define REXXENTRY
RexxReturnCode REXXENTRY RexxPullQueue(const char *name, PRXSTRING data_buf, SYSTEMTIME *dt, size_t waitflag)