使用 IccResource 子类
要说明如何使用 IccResource 子类,请考虑使用 IccTempstore 类将队列项写入 CICS® 临时存储器。
IccTempStore store("TEMP1234");
IccBuf buffer(50);
创建的 IccTempStore 对象是应用程序对名为“ TEMP1234 ”的 CICS 临时存储队列的视图。 创建的 IccBuf 对象包含 50 个字节的数据区 (也正好是 "可扩展")。
buffer = "Hello Temporary Storage Queue";
store.writeItem(buffer);
将字符串 "Hello 临时存储器队列" 复制到缓冲区中。 这是可能的,因为 operator= 方法已在 IccBuf 类中重载。
IccTempStore调用其 writeItem 方法,并将 IccBuf引用作为第一个参数传递。 IccBuf 对象的内容将写出到 CICS 临时存储器队列。
现在考虑逆向操作,将记录从 CICS 资源读取到应用程序的 IccBuf 对象中:
buffer = store.readItem(5);
readItem 方法读取 CICS 临时存储器队列中第五项的内容,并将数据作为 IccBuf 引用返回。
C++编译器将给定的代码行解析为两个方法调用:在类 readItem 中定义的方法 IccTempStore ,以及在类中重载的operator IccBuf =运算符。 第二个方法采用返回的 IccBuf 引用的内容,并将其数据复制到缓冲区中。
使用基础类的读写记录的给定样式是典型的。 最后一个示例显示了如何编写代码 (使用与以上示例类似的样式) ,但这次是访问 CICS 瞬时数据队列。
IccDataQueue queue("DATQ");
IccBuf buffer(50);
buffer = queue.readItem();
buffer << "Some extra data";
queue.writeItem(buffer);
调用 IccDataQueue readItem ,返回 IccBuf引用,然后通过 IccBuf重载的) operator=方法将该引用赋值给 buffer 对象。 将字符串 "一些额外数据" 追加到缓冲区 (通过 运算符 chevron " 方法,在类 IccBuf 中重载。 然后, writeItem 方法会将此修改后的缓冲区写回 CICS 瞬时数据队列。
您可以在以下部分中提供的样本中找到此语法的更多示例,这些示例描述如何使用基础类来访问 CICS 服务。
请参阅参考部分,以获取有关 IccBuf 类的更多信息。 您还可以找到提供的样本- ICC$BUF -有所帮助。