Milky Way
                              image  MultiverseSocial.com Milky Way
                              image
> Web 4 <
Tony's Channel Paradigm

            
 

  >Web 4 < Channel types
 
Base
System
Composite
SubChannel

BaseChannel:
All Channels are BaseChannels and must implement the
Channel structure as the first element of its structure and call it
struct Channel

{

struct Linkable
node;
int                 
channel_flags;
struct ChannelLinkInfo
*link_info;
int                 
type;
int                  
io_flags;
struct Linkable   
nexus[16];
__int32

pid;
Uint64        
  atomic_id;
Uint64             

   ipv6[2];    //
struct Signal    
     ch_signal;
char             
      name[64]; 
struct RunInfo        
run_info;
struct Signal        
ch_signal;
struct HyperLinkedList
system_list;
struct HyperLinkedList
join_list;
struct HyperLinkedList
process_list;
struct HyperLinkedList
exception_list;
struct NetXecThread   
system_thread;
struct NetXecThread join_thread;
struct NetXecThread process_thread;
struct NetXecThread exception_thread;
SDL_mutex          
 mutex;
SDL_cond             
wait_mask;
SDL_mutex         *io_lock; 
SDL_SpinLock         signal lock.
__int32 (*paint)(struct Graphics2D *);
*atomic_lock;     //non blocking
};























ei:
struct MyNewChannel
{
struct BaseChannel base;
};


System Channels:

These are channels that "tend" to be singletons.

#define SYSTEM_CHANNEL_MASK        0x00000001  // NetXecChannel
#define DEVICE_CHANNEL_MASK        0x00000002  
#define MEMORY_CHANNEL_MASK        0x00000004
#define THREAD_CHANNEL_MASK        0x00000008
#define SIGNAL_CHANNEL_MASK        0x00000010
#define MEDIA_CHANNEL_MASK         0x00000020
#define CLOCK_CHANNEL_MASK         0x00000040 //clock->clock_register
#define CONTAINER_CHANNEL_MASK     0x00000080 // IO goes to HyperView->asynch blitter list.
#define URL_CHANNEL_MASK           0x00000100  // URI fetcher.
#define SERVER_CHANNEL_MASK        0x00000200
#define PROCESS_CHANNEL_MASK       0x00000400 // random processing
#define STATE_MACHINE_CHANNEL_MASK 0x00000800
#define CLI_CHANNEL_MASK           0x00001000
#define COMPILER_CHANNEL_MASK      0x00002000
#define DEBUG_CHANNEL_MASK         0x00004000
#define NIMOSINI_CHANNEL_MASK      0x00008000 // AI Channel

  


Composite Channel:
Is a collection of Standard Channels.   All implementations are Composite Channels.
Example;

struct MyCompositeChannel
{
struct BaseChannel base;
struct STDIOChanne stdio;
struct MemoryChannel memory;
struct ThreadChannel threads;
struct ContainerChannel graphics;
struct ServerChannel network;
struct URLChannel fetcher;
};




SubChannels are Channels that extend other channrels
   // *** System SubChannel
#define STDIN_CHANNEL             0x00000000 //-
#define STDOUT_CHANNEL            0x00000001 //-
#define STDERR_CHANNEL            0x00000002 //-

  //*** Device SubChannel 0
#define GPU_CHANNEL               0x00000001   // GPU IO/clock memory
#define USB_CHANNEL               0x00000002  //

  //*** MemoryChannel SubChannel
#define HEAP_CHANNEL              0x00000001 
#define STACK_CHANNEL             0x00000002 
#define SHARED_MEMORY_CHANNEL     0x00000004 
#define BACKING_STORE_CHANNEL     0x00000008
#define CLOUD_CHANNEL             0x00000010
#define REGISTRY_CHANNEL          0x00000020
#define DEVICE_MEMORY_CHANNEL     0x00000040
   //*** Thread SubChannel
        //...This space for rent
   //*** Signal SubChannel

    //----
   //*** Media SubChannel
#define AUDIO_CHANNEL             0x00000001
#define IMAGE_CHANNEL             0x00000002
#define VIDEO_CHANNEL             0x00000004 // ContainerChannel derived.
#define VLC_CHANNEL               0x00000008 // VLC derived
#define TELEVISION_CHANNEL        0x00000010
     //*** Clock SubChannel

     //*** Container SubChannel

   //*** URLChannel  SubChannel
#define FTP_CHANNEL                 0x00000001
#define TELNET_CHANNEL          0x00000002
#define GOPHER_CHANNEL       0x00000004
#define FILE_CHANNEL               0x00000008
#define CHAT_CHANNEL              0x00000010

     //*** Server SubChannel
#define PORT_SERVER_CHANNEL       0x00000020
#define FTP_SERVER_CHANNEL        0x00000040
#define HTML_SERVER_CHANNEL       0x00000080
#define SQL_SERVER_CHANNEL        0x00000100
#define BML_SERVER_CHANNEL        0x00000200
#define BQL_SERVER_CHANNEL        0x00000400
#define BLOCKC_SERVER_CHANNEL     0x00000800
#define DEBUG_SERVER_CHANNEL      0x00001000

 //*** NIMOSINI AI SubChannel
#define NEURAL_CHANNEL0 0x00000000 // Neural net interface.
#define NEURAL_CHANNEL1 0x00000001 // Neural net interface.
#define NEURAL_CHANNEL2 0x00000002 // Neural net interface.
#define NEURAL_CHANNEL3 0x00000003 // Neural net interface.
#define NEURAL_CHANNEL4 0x00000004 // Neural net interface.
#define NEURAL_CHANNEL5 0x00000005 // Neural net interface.
#define NEURAL_CHANNEL6 0x00000006 // Neural net interface.
#define NEURAL_CHANNEL7 0x00000007 // Neural net interface.
#define JULIA_CHANNEL8  0x00000008
#define ANTLR_CHANNEL0  x000000009
             //*** ProtocolChannel SubChannel
#define GPS_CHANNEL        0x00000000
#define GPRS_CHANNEL       0x00000001   // General packet radio serves,
#define BML_CHANNEL        0x00000002
#define BQL_CHANNEL        0x00000003
#define HTML_CHANNEL       0x00000004
#define EMSCRYPTEN_CHANNEL  0x00000005
#define SQL_CHANNEL        0x00000006

   //*** Process SubChannel
#define ENCRYPTION_CHANNEL 0x00000000
#define STATISTICS_CHANNEL 0x00000001 //
#define TRANSFORM_CHANNEL  0x00000002 //
#define ARBITRATION_CHANNEL 0x00000003 //
#define SMC_CHANNEL        0x00000003 // self modified code.

     // ***  Compiler SubChannel
#define x64_ASSEMBLER_CCHANNEL 0x00000000
#define ARM8_ASSEMBER_CCHANNEL 0x00000001
#define C_CCHANNEL                              0x00000002
#define FORTRAN_CCHANNEL              0x00000003
#define JAVA_CCHANNEL                       0x00000004
#define EMSCRIPTEN_CCHANNEL       0x00000005
#define JAVA_SCRIPT_CCHANNEL       0x00000006




 
 
By Tony Swain. 
 



-->