O'Reilly logo

Learning DCOM by Thuan L. Thai

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

The Reusable echnique

The manual technique for using distributed components is pretty cool, as it allows you to write code to dynamically connect to remote components. Let’s combine our knowledge from the three techniques discussed earlier to see if we can do any better. If you look at the code in the OnManual handler (in the previous section), you would realize that the code can be generalized. With this observation, let’s wrap it up into a template class so that it will be easier to use in the future. With this mentality, we will write a smart pointer template class that allows us to use a specified interface pointer on a specific remote machine. This smart pointer class will be similar to the ones we’ve seen earlier in this chapter. It differs from all the smart pointers discussed thus far, because it allows us to specify the target server destination programmatically.

The RemotePtr Class

Let’s call this smart pointer class RemotePtr, which will allow a client to simply do the following:

  • Instantiate the class, setting an interface type, its class identifier, and its interface identifiers as template parameters. During instantiation, a remote server name can be passed along.

  • Call interface methods directly using the overloaded arrow operator (i.e., operator->).

The RemotePtr class is a template class that takes an actual interface type and references to its class and interface identifiers. Below is the implementation of the RemotePtr class separated in digestible chunks.

//------------------------------------------------------------------------ ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required