Objects

Discussion in 'C' started by tailhook123, May 23, 2007.

  1. tailhook123

    tailhook123 New Member

    Joined:
    May 23, 2007
    Messages:
    30
    Likes Received:
    0
    Trophy Points:
    0
    Hi.. new to the forums. In my offtime I've recently been working on some ideas that I wanted to toss out there.. specifically I'm looking to know if what I'm doing has been done elsewhere. Not looking to try to reinvent the wheel if its been done.

    Basically what I'm looking to do is create an enviornment in which objects persist, change, and evolve dynamically.. outside and independent of normal program flow. I've broken down an Object in my enviornment to 5 distinct features so far.

    Metrics - Enviornmental information about any Object. An example... I'm looking to give Objects a decay time. If an Object hasn't been accessed within a certain time period... it gets unloaded on to disk and vice versa. I also want objects that have a lifespan. If they reach the lifespan.. the destructor is called and the object is destroyed.

    Raw Data - Simply a chunk of data of a certain length that resides in the object.

    Definitions - A definition will lay out the structure for a segment of Raw Data. This structure will be the location of its properties/methods, their name, and their size. Basically it'll act like a jump table into the Raw Data. An Object can have literally as many Definitions as you would like.

    Input - This is the area dealing with Input to the object. By placing an object here.. the object then acts upon that Input changing it or using it in some way.

    Output - This is the area dealing with Output to the object. A method can place 1 to N objects in output as needed.

    To do this.. the enviornment would have two distinct databases. The Object Database and the Object Definition Database. Assuming a user needed an object the user would take a definition from the ODD and transfer it to the world whereupon a new object would be created based upon that definition. On creation an entry for it would be made and entered in the OD for it.

    I know its a lot to take in.. but the root idea is that of persistant objects. Objects that don't go away, can be manipulated, and will change over time. Has anybody seen anything that really does this?
     
  2. shabbir

    shabbir Administrator Staff Member

    Joined:
    Jul 12, 2004
    Messages:
    15,375
    Likes Received:
    388
    Trophy Points:
    83
    Are you trying to implement it in the compiler or what? What you are referring to Metrics is somewhat related to Virtual Memory.
     
  3. tailhook123

    tailhook123 New Member

    Joined:
    May 23, 2007
    Messages:
    30
    Likes Received:
    0
    Trophy Points:
    0
    A program would run the enviornment for this yes. At the end think of it as a replacement for the desktop and rather than interacting with 'shortcuts' and 'programs'... you are actually interacting with objects. A 'shortcut' or a 'program' would simply be another object.

    Metrics are information universal only to objects. Like.. a name. When an object is created you give it a name.. but that name has nothing to do with any of the methods or properties that reside in that object.. its simply a moniker that the process that created it uses to refer to it by. Another would be access control. Who has access to this object and the rights to use it? Basically all stuff that the enviornment looks at when dealing with the objects and having nothing at all to do with what the object actually is(thats in the definitions/raw data).

    I basically want objects to become independent of programs. Right now we have a situation where programs create and manipulate objects. The objects live for only the time that the program is active. What i'm looking for is objects that exist outside of any particular program, whose procedures can be called remotely, and do not die until their destructor is called. I also want these objects moveable and usable transparently across networks.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice