• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Distributed object vending problem
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Distributed object vending problem


  • Subject: Re: Distributed object vending problem
  • From: Ken Thomases <email@hidden>
  • Date: Mon, 20 Sep 2010 10:28:10 -0500

On Sep 18, 2010, at 11:14 AM, Ken Tozier wrote:

> I'm writing two apps: A server and client and am having some trouble figuring exactly what to link to in the client program. The server application has a main class that has dozens of dependencies. I don't want to have to import all the server app dependencies into the client application as that defeats the purpose of factoring code into separate apps. How do I send messages to a server's vended object without having to include the server's entire dependency tree? I looked into protocols and proxies but am not sure which to use.

The client shouldn't have or need any of the server's implementation code.  You should define a protocol for the interface to the vended object in a header that's shared by both the client and the server.

Then, cast the NSDistantObject* pointer returned by one of the rootProxy... methods to NSDistantObject<YourProtocolHere>* (or, if you prefer, id<YourProtocolHere>).  Then, just invoke the appropriate methods on it.

The client should also use -[NSDistantObject setProtocolForProxy:] for efficiency.  And the server should probably vend an NSProtocolChecker instead of the actual object.  Any actual object is likely to have a number of private or internal-use-only methods on it, which you don't want accessible from client.  The NSProtocolChecker makes sure that only the appropriate methods are accessible.

The client code should have no mention of the actual class used on the server.

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Distributed object vending problem (From: Ken Tozier <email@hidden>)

  • Prev by Date: Re: NSView resizing problems.
  • Next by Date: Re: NSView resizing problems.
  • Previous by thread: Distributed object vending problem
  • Next by thread: Re: Distributed object vending problem
  • Index(es):
    • Date
    • Thread