« Testing | Way back Archives | x64 »

Sinking connection points in C++ objects.

| 2 Comments
Sometimes it would be nice to be able to use a simple C++ object as a sink for Connection Point notifications. This article shows you how.…

Designing asynchonous COM components for VB

| 0 Comments
This example COM component provides three COM objects for using the Win32 Mailslot IPC mechanism. The component may be useful if you need to communicate from VB using Mailslots. However, the reason I wrote it was to demonstrate creating a COM component in C++ that integrates well with VB and can fire asynchronous events.…

AVL Tree

| 2 Comments
A "generic" AVL Tree, from the dark days before templates... The code here is some of my first C++. Back in 1991 C++ was still pretty new. Looking back at my early C++ is better than looking back at my early C. At least my early C++ just looked like OKish C with some odd keywords...…

Rooms 1.7

| 0 Comments
In 1989 I taught myself C to write an adventure game, the code's fairly bad, but 10 year's later, the game's still quite cool!…

Java caches in the middle tier

| 5 Comments
A common way to improve the performance of Java code is to cache objects rather than repeatedly create and destroy them. This is especially true when you're writing middle tier servers that service client requests and return results objects. Implementing a flexible caching scheme in Java is relatively easy, but there are a few things to watch for.…

The CORBA Evictor Pattern in Java

| 0 Comments
When a CORBA server allows its clients to create and destroy objects one of the recommended ways to handle the object lifetime issues is using the Evictor Pattern. In The Evictor Pattern we solved the problem for C++ servers, here we do the same for Java servers.…

CORBA - Keep Alive

| 0 Comments
One way of making a reference counted implementation more robust is to run the keep-alive protocol yourself. We demonstrate this option here.…

CORBA - The Evictor Pattern

| 0 Comments
Since CORBA doesn't really support reliable reference counting implementations we'll compare one of the recommended methods of servant life-time management with our reference counted iteration interface.…

CORBA - Iteration

| 0 Comments
A CORBA style method of enumeration can be seen in the iteration interfaces on the CORBA Naming Service. Given the code we've already written for the enumeration interface we can easily implement an iteration interface as well as (or, more likely, instead of).…

CORBA - Enumeration

| 0 Comments
CORBA provides sequences as a way of returning collections of items from an method call. The problem with just using unbounded sequences is that the client has no control over how many items it receives as a result of the call. COM gets around this problem using the IEnum style interfaces that allow a client to control how it accesses the items in a collection.…

CORBA - Reference Counting Issues

| 0 Comments
At the end of the second article we have developed a self contained reference counting implementation that appears to work. Unfortunately, it's still far from reliable as CORBA doesn't provide the level of support for reference counting that's built into COM. In this article we discuss the problem and the various CORBA methods for controlling server object lifetime.…

CORBA - More Reference Counting

| 0 Comments
Although we managed to develop a working solution in the first CORBA reference counting article the results were ugly and fragile. In this article we attempt to clean things up a little and, in doing so, get intimate with the Portable Object Adapter and its Servant Managers.…

CORBA - Reference Counting

| 0 Comments
We've been developing code on Windows and Unix for quite some time, but most of the distributed component work we've been involved in has been done using COM. That's changing now as clients have more requirements for Unix based component solutions. We're currently evaluating CORBA ORBs and learning how the CORBA way of doing things differs from the COM way. The first difference that we came across was the way that CORBA servers deal with object lifetime issues. Adding reference counting to CORBA objects isn't as easy as it first seems Please note that these articles initially explore COM concepts…

COM+ Administration

| 0 Comments
COM+ applications can be complex to configure and there's no standard way to save that configuration in a form that can be placed under version control. Luckily the COM+ Catalog is accessible by a set of completely scriptable COM objects. These scripts take advantage of this to provide some functionality that should really come as standard.…

OLEDB - Disconnected Recordsets

| 0 Comments
If you are going to use the client cursor engine then often it's a good idea to disconnect your recordset...…

MFC - Include/Exclude list boxes

| 0 Comments
How to package lots of standard functionality into a CListBox derived class.…

Using COM to write extensible applications

| 0 Comments
Localise design decisions by writing key application functionality as pluggable COM objects. When the requirements change you just write a new plug in...…

It's a wonder any code is ever reused

| 0 Comments
It's rare that code can be viewed as a black box for reuse. If you include design choices and dependencies as valid parts of the code's interface then it's easier to explain why reusing nontrivial code is often harder than writing it from scratch.…

OLEDB - Client Cursor Engine updates

| 0 Comments
Making the ADO Client Cursor Engine believe that your rowset is updateable involves jumping through a few extra hoops...…

OLEDB - Updating data through an ADO recordset

| 0 Comments
The ATL OLE DB Provider templates only seem to support read-only rowsets, and making them support updating of data isn't as easy as you'd expect!…

OLEDB - IRowsetLocate and Bookmarks

| 0 Comments
Adding bookmark functionality is relatively easy and it enables our ADO recordset to be used with a greater number of data bound controls.…

OLEDB - Custom Rowsets

| 0 Comments
The ATL OLE DB Provider templates appear to rely on the fact that your data is kept in a simple array, but that's not really the case at all!…

OLEDB - Objects via ADO

| 0 Comments
ADO seems to be the ideal way to expose tabular data from your own COM objects and the ATL OLE DB Provider templates can help!…

MFC - Templates

| 0 Comments
Templates are a great way of reusing code, unfortunately MFC makes it hard to write MFC friendly template classes...…

IEnumXXXX

| 0 Comments
COM objects generally provide access to sequences using an IEnumXXXX style interface, this class wraps that with an STL style iterator…

Smart cards in Russia

| 0 Comments
In February 1995 I flew to Perm in eastern Russia as part of a two-man team installing a smartcard system for a local bank. I was responsible for designing and implementing the card production system that was being used. For a marketing view of the system that we installed, visit Interlink's Smart Bank pages. For a personal view, stay tuned...…

Rifts character sketch

| 0 Comments
John Fernberg. RPA Elite, SAMAS 261. I'd wanted to be "Sam" ever since my fifth birthday. It was Freedom Day and the local garrison had staged a fly by as part of the celebrations. I can remember the smell of pop-corn and fresh muffins, sitting on Dad's shoulder so I could see. The whole town had turned out and there was a crowd bigger than I'd ever seen. I sat on a rock in a sea of heads. We stood at the edge of town and watched as the dust cloud grew closer. Then we could see them. Thirty two…

The Order of the Silver Rose

| 0 Comments
The Order of the Silver Rose was a religious order of Knights in an AD&D campaign that I ran. The campaign was set in The Forgotten Realms and was based around the FRE1-3 scenario packs.…
« Testing | Way back Archives | x64 »

About this Archive

This page is an archive of all entries in the Way back category.

Testing is the previous category.

x64 is the next category.

I usually write about C++ development on Windows platforms, but I often ramble on about other less technical stuff...

Find recent content on the main index or look in the archives to find all content.

I have other blogs...

Subscribe to feed The Server Framework - high performance server development
Subscribe to feed Lock Explorer - deadlock detection and multi-threaded performance tools
Subscribe to feed l'Hexapod - embedded electronics and robotics
Subscribe to feed MegèveSki - skiing